我正在编写我的文本框控件,并且我尝试进行选择,所选文本将以浅蓝色背景显示,然后我注意到背景冲浪有时超过其他字母,所以我检查了它,因为你将在下面的示例中看到,我发现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);
此代码写入字母,一个用白色背景,一个用浅蓝色背景,依此类推。
正如您在输出图像中看到的那样,第二个字母的背景,由第三个字母的背景覆盖 有没有办法阻止添加背景?