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;
当用户在光标位于窗口工作区中并且用户按下鼠标左键时发布。 如果未捕获鼠标,则会将消息发布到光标下的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其 WindowProc 函数接收此消息。
当光标位于窗口工作区中并且用户按下鼠标右键时发布。 如果未捕获鼠标,则会将消息发布到光标下的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其 WindowProc 函数接收此消息。
当光标移动到窗口时发布。 如果未捕获鼠标,则会将消息发送到包含光标的窗口。 否则,会将消息发送到捕获了鼠标的窗口。
窗口通过其 WindowProc 函数接收此消息。
其他相关信息请参考键盘和鼠标输入 - Win32 apps | Microsoft Docs
BOOL GetCursorPos(
[out] LPPOINT lpPoint
);
[out] lpPoint
类型:LPPOINT
指向 POINT 结构的指针,该结构接收光标的屏幕坐标。
类型: 布尔
如果成功,则返回非零值,否则返回零。
其他相关信息请参考GetCursorPos function (winuser.h) - Win32 apps | Microsoft Docs
将矩形添加到指定窗口的更新区域。更新区域表示窗口工作区中必须重绘的部分。
BOOL InvalidateRect(
[in] HWND hWnd,
[in] const RECT *lpRect,
[in] BOOL bErase
);
[in] hWnd
更新区域已更改的窗口的句柄。如果此参数为 NULL,则系统将失效并重新绘制所有窗口,而不仅仅是此应用程序的窗口,并在函数返回之前发送WM_ERASEBKGND和WM_NCPAINT消息。不建议将此参数设置为 NULL。
[in] lpRect
指向 RECT 结构的指针,该结构包含要添加到更新区域的矩形的客户端坐标。如果此参数为 NULL,则将整个工作区添加到更新区域。
[in] lpRect
指定在处理更新区域时是否擦除更新区域中的后台。如果此参数为 TRUE,则在调用 BeginPaint 函数时将擦除背景。如果此参数为 FALSE,则背景保持不变。
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。
其他请参考InvalidateRect function (winuser.h) - Win32 apps | Microsoft Docs
将指定设备上下文的文本颜色设置为指定的颜色。
COLORREF SetTextColor(
[in] HDC hdc,
[in] COLORREF color
);
[in] hdc
设备上下文的句柄。
[in] color
文本的颜色。
如果函数成功,则返回值是作为 COLORREF 值的上一个文本颜色的颜色引用。
如果函数失败,则返回值CLR_INVALID。
其他请参考SetTextColor function (wingdi.h) - Win32 apps | Microsoft Docs
使用当前选定的字体、背景色和文本颜色在指定位置写入字符串。
BOOL TextOutW(
[in] HDC hdc,
[in] int x,
[in] int y,
[in] LPCWSTR lpString,
[in] int c
);
[in] hdc
设备上下文的句柄。
[in] x
系统用于对齐字符串的参考点的 x 坐标(以逻辑坐标表示)。
[in] y
系统用于对齐字符串的参考点的 y 坐标(以逻辑坐标表示)。
[in] lpString
指向要绘制的字符串的指针。字符串不需要以零终止,因为 cchString 指定字符串的长度。
[in] c
lpString 所指向的字符串的长度,以字符为单位。
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。
其他请参考SetTextColor function (wingdi.h) - Win32 apps | Microsoft Docs