ClientToScreen 和 ScreenToClient

来源:互联网 发布:天天酷跑刷积分软件 编辑:程序博客网 时间:2024/06/09 23:35

 函数原型:BOOL     ClientToScreen(HWND     hWnd,LPPOINT     lpPoint);   
    
            参数:   
    
            :用户区域用于转换的窗口句柄。   
    
            :指向一个含有要转换的用户坐标的结构的指针,如果函数调用成功,新屏幕坐标复制到此结构。   
    
            返回值:如果函数调用成功,返回值为非零值,否则为零。   
    
            注释:函数用屏幕坐标取代POINT结构中的用户坐标,屏幕坐标与屏幕左上角相关联。   
    
            速查:Windows     NT:3.1及以上版本;Windows:95及以上版本;Windows     CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。   
    
    
    
        函数功能:该函数把屏幕上指定点的屏幕坐标转换成用户坐标。   
    
            函数原型:BOOL     ScreenToClient(HWND     hWnd,     LPPOINT     lpPoint);   
    
            参数:   
    
            hWnd:指向窗口的句柄,此窗口的用户空间将被用来转换。   
    
            lpPoint:指向POINT结构指针,该结构含有要转换的屏幕坐标。   
    
            返回值:如果函数调用成功,返回值为非零值,否则为零。   
    
            Windows     NT:若想获得更多错误信息,请调用GetLastError函数。   
    
            注释:该函数应用hWnd参数标识的窗口和POINT结构给定的屏幕坐标来计算用户坐标,然后以用户坐标来替代屏幕坐,新坐标是相对于指定窗口的领域的左上角。   
    
            速查:Windows     NT:3.1及以上版本;Windows:95及以上版本;Windows     CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。   
    
  
例如:想要得到文本框在对话框中左上角的坐标(即文本框左上角到对话框左上角的距离)   
    
    
    CRect     rectEdit,rectDlg;   
    CWnd     *pWnd=GetDlgItem(IDC_EDIT1);//获得文本框指针   
    pWnd->GetClientRect(rectEdit);       //获得文本框矩形,左上角坐标(0,0)   
    pWnd->ClientToScreen(rectEdit);       //转换到屏幕坐标,左上角坐标为文本框在屏幕的坐标   
    GetClientRect(rectDlg);//获得对话框矩形,左上角坐标(0,0)   
    ClientToScreen(rectDlg);//转换到屏幕坐标,左上角坐标为对话框在屏幕的坐标   
    
    int     x=rectEdit.left-rectDlg.left;//他们的差即为文本框在对话框中的X坐标   
    int     y=rectEdit.top-rectDlg.top;//他们的差即为文本框在对话框中的Y坐标   

原创粉丝点击