TextOut将边距添加到背景中

时间:2013-03-19 16:35:11

标签: c++ winapi text-editor

我正在编写我的文本框控件,并且我尝试进行选择,所选文本将以浅蓝色背景显示,然后我注意到背景冲浪有时超过其他字母,所以我检查了它,因为你将在下面的示例中看到,我发现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);

此代码写入字母,一个用白色背景,一个用浅蓝色背景,依此类推。

enter image description here

正如您在输出图像中看到的那样,第二个字母的背景,由第三个字母的背景覆盖 有没有办法阻止添加背景?

0 个答案:

没有答案