每当您的应用程序在处理WM_PAINT之外的消息时重绘屏幕时,必须使用HideCaret功能使插入符号不可见。当您的应用程序完成绘图时,使用ShowCaret功能重新显示插入符号。如果您的应用程序处理WM_PAINT消息,则不需要隐藏和重新显示插入符,因为此函数会自动执行此操作。
以下代码示例显示了如何在屏幕上绘制字符以及处理WM_CHAR消息时将应用程序隐藏插入符号。
HWND hwnd, //窗口句柄
HDC hdc; //设备上下文
case WM_CHAR:
开关(wParam)
{
case 0x08:
.
. //处理退格
.
break;
case 0x09:
.
. //处理选项卡
.
break;
case 0x0D:
.
. //处理回车。
.
break;
case 0x1B:
.
. //处理转义。
.
break;
case 0x0A:
.
. //处理换行符
.
break;
默认:
//隐藏插入符号。
HideCaret(hwnd);
//在屏幕上绘制字符
hdc = GetDC(hwnd);
SelectObject(hdc,
GetStockObject(SYSTEM_FIXED_FONT));
TextOut(hdc, x, y, lpszChar, 1);
ReleaseDC(hwnd, hdc);
//显示插入符号。
ShowCaret(hwnd);
}
如果您的应用程序多次调用HideCaret函数,而不调用ShowCaret,则在应用程序也调用ShowCaret相同次数之前,插入符号将不会显示。