首先我想知道
"SendMessage(hWnd, WM_LBUTTONDOWN, wParam, lParam)来发送点击消息,其中lParam的低字节是点击的X坐标,高字节是点击的Y坐标。"这个里面的所谓的坐标,是指的hWnd的窗口里面的相对坐标,还是整个屏幕的坐标二来我想知道上面的那个lParam怎么表示
POINT pt; pt.x=164;
pt.y=229;
::SendMessage(Main_hWnd, WM_LBUTTONDOWN, NULL, pt);
::SendMessage(Main_hWnd, WM_LBUTTONUP, NULL, pt);我这么做,会抱错,好像不能直接用pt来代替lParam,那么怎么来表示呢?

解决方案 »

  1.   

    第一个问题,我觉的是相对于窗口的。
    当是WM_LBUTTONDOWN消息时,不能直接将point赋给lparam
    xPos = LOWORD(lParam);  // horizontal position of cursor 
    yPos = HIWORD(lParam);  // vertical position of cursor 
    所以必须转化一下。
    把x坐标放到lparam的低字节,y坐标放到高字节。
    wparam是放虚拟码的。
      

  2.   

    ::SendMessage(Main_hWnd, WM_LBUTTONDOWN, NULL, MAKELONG(pt.x,pt.y));
      

  3.   

    ::SendMessage(Main_hWnd, WM_LBUTTONDOWN, NULL, MAKELPARAM(pt.x,pt.y));
      

  4.   

    ::SendMessage(Main_hWnd, WM_LBUTTONDOWN, NULL, (LPARAM)(pt.x|(pt.y<<8)));