Winapi 我需要知道WM_命令激活时按钮点击的x和y坐标
我有一个按钮是用Winapi 我需要知道WM_命令激活时按钮点击的x和y坐标,winapi,buttonclick,mouse-coordinates,Winapi,Buttonclick,Mouse Coordinates,我有一个按钮是用 //Create Compass HWND hWndCompass = CreateWindowEx(NULL, "BUTTON", "Compass", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON, 600, 10, 50, 24, hWnd, (HMENU)IDC_COMPASS, GetModuleHandle(NULL), NULL); 我将在将来添加图片,但我需要知道他们单击按钮的位置,以便
//Create Compass
HWND hWndCompass = CreateWindowEx(NULL, "BUTTON", "Compass", WS_TABSTOP|WS_VISIBLE|WS_CHILD|BS_DEFPUSHBUTTON,
600, 10, 50, 24, hWnd, (HMENU)IDC_COMPASS, GetModuleHandle(NULL), NULL);
我将在将来添加图片,但我需要知道他们单击按钮的位置,以便我可以确定他们是否单击了指南针的N、S、E、W或其他点
我的电话是:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
我需要在消息中查找该信息吗?要检索鼠标单击按钮的X和Y坐标,您应该:
- 在WndProc()函数中,捕获
事件WM\u MOUSEMOVE
- 一旦引发事件,
将为您提供事件类型(已按下哪个按钮)wParam
- 在所需事件中,您可以通过
lParam
RESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_MOUSEMOVE:
{
if (lParam == MK_LBUTTON)
{
myXCoord = GET_X_LPARAM(lParam);
myYCoord = GET_Y_LPARAM(lParam);
}
}
break;
default:
DefWindowProc(hWnd, message, wParam, lParam);
}
}
- 有关WM_MOUSEMOVE消息的更多信息,请转到: