如何将点转换为点?

时间:2013-12-18 21:03:56

标签: c++ winapi

我正在写一个Win32程序。

    POINTS p = MAKEPOINTS(lParam); 

    ClientToScreen(hWnd, &p);  

如何将p转换为POINT类型?

2 个答案:

答案 0 :(得分:4)

这只是一个点shorts而不是longs,所以这应该有效:

POINT pt = {p.x, p.y};

或者,似乎实际上还有macro来执行此操作:

POINT pt;
POINTSTOPOINT(pt, p);

答案 1 :(得分:2)

POINTPOINTS不是一回事。所以你必须要么:

  1. POINTS复制到单独的POINT

    POINTS ps = MAKEPOINTS(lParam); 
    POINT pt;
    pt.x = ps.x;
    pt.y = ps.y;
    ClientToScreen(hWnd, &pt);
    
  2. 完全摆脱POINTS并单独使用POINT

    POINT pt;
    pt.x = GET_X_PARAM(lParam);
    pt.y = GET_Y_PARAM(lParam);
    ClientToScreen(hWnd, &pt);