小甲鱼 发表于 2015-9-8 00:51:08

ClientToScreen

函数功能:

ClientToScreen 函数用于将一个点的客户区坐标转换为屏幕坐标。


API 函数原型:

BOOL ClientToScreen(
HWND hWnd,
LPPOINT lpPoint
);

参数解析:


参数 含义
hWnd 指定窗口的句柄
lpPoint 1. 指向 POINT 结构的长指针,POINT 结构为待转换的客户区坐标
2. 如果函数调用成功,转换后的新坐标将覆盖该结构


返回值:

1. 如果函数调用成功,返回非 0 值;

2. 如果函数调用失败,返回 0;

3. 调用 GetLastError 函数获得详细的错误信息。


举个栗子:

下边的代码示例将鼠标或手写笔点击的坐标转换为屏幕坐标,并采用新的坐标进行计算。

    switch (message)
    {
      case WM_LBUTTONDOWN:
      case WM_RBUTTONDOWN:
            pt.x = LOWORD(lParam);
            pt.y = HIWORD(lParam);
            ClientToScreen( hStatusWnd, &pt );
            SetCapture(hStatusWnd);
            GetWindowRect(hStatusWnd,&drc);
            ptdif.x = pt.x - drc.left;
            ptdif.y = pt.y - drc.top;
            break;
    }

备注:

ClientToScreen 函数将用屏幕坐标代替指向客户区坐标的 POINT 结构。新坐标的原点取决于窗口的布局。对于从左到右布局的窗口,新的屏幕坐标是相对于屏幕的左上角;对于从右到左布局的窗口,新的屏幕坐标是相对于屏幕的右上角。所有的坐标均使用设备单位(像素)。

【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

WinSDK
页: [1]
查看完整版本: ClientToScreen