我正在编写我的文本框控件,我尝试进行选择,所选文本将以浅蓝色背景显示,然后我注意到背景有时会超过其他字母,所以我检查了它,正如您将在下面的例子,我发现该TextOut
函数为背景添加了边距。
这是示例代码:
全局变量:
int WritePosition = 0;
bool color;
和代码:
case WM_CHAR:
hdc = GetDC(hWnd);
SetMapMode(hdc, MM_HIMETRIC);
wchar_t wch;
wch = (wchar_t)wParam;
SIZE size;
GetTextExtentPoint32(hdc, &wch, 1, &size);
if(color)
SetBkColor(hdc, RGB(190, 210, 236));
color = !color;
TextOut(hdc, WritePosition, 0, &wch, 1);
WritePosition += size.cx;
ReleaseDC(hWnd, hdc);
这段代码写字母,一个白色背景,一个浅蓝色背景,依此类推。
正如您在输出图像中看到的,第二个字母的背景,被第三个字母的背景覆盖。
有没有办法防止添加背景?