代码示例:
case WM_LBUTTONDOWN: //鼠标左键按下触发事件。
color = RGB(255, 0, 0); //更改全局变量颜色为红色
GetCursorPos(&P); //获取鼠标位置坐标并赋值给全局位置变量P
InvalidateRect(hWnd, NULL, TRUE); //重绘屏幕
break;
case WM_RBUTTONDOWN: //鼠标右键按下触发事件。
color = RGB(0, 0, 255); //更改全局变量颜色为绿色
GetCursorPos(&P); //获取鼠标位置坐标并赋值给全局位置变量P
InvalidateRect(hWnd, NULL, TRUE); //重绘屏幕
break;
case WM_MOUSEMOVE: //鼠标移动触发事件
GetCursorPos(&P); //获取鼠标位置坐标并赋值给全局位置变量P
InvalidateRect(hWnd, NULL, TRUE); //重绘屏幕
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此处添加使用 hdc 的任何绘图代码...
SetTextColor(hdc,color); //设置窗口文本颜色为全局变量color
TextOut(hdc, P.x, P.y, L"Hello World!", 12);
/*在窗口坐标(P.x, P.y)处输出全宽字符串"Hello World!"*/
EndPaint(hWnd, &ps);
}
break;
第一步:鼠标输入通知
-
鼠标左键按下消息。
WM_LBUTTONDOWN
当用户在光标位于窗口工作区中并且用户按下鼠标左键时发布。 如果未捕获鼠标,则会将消息发布到光标下的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其 WindowProc 函数接收此消息。
-
鼠标右键按下消息。
WM_RBUTTONDOWN
当光标位于窗口工作区中并且用户按下鼠标右键时发布。 如果未捕获鼠标,则会将消息发布到光标下的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其 WindowProc 函数接收此消息。
-
鼠标移动消息。
WM_MOUSEMOVE
当光标移动到窗口时发布。 如果未捕获鼠标,则会将消息发送到包含光标的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其