WinAPI:在编辑控件文本后面绘制矩形

时间:2016-09-18 14:04:27

标签: c winapi

我有一个只读的编辑控件,显示一个多行字符串。我使用WM_CTLCOLORSTATIC在我的控件被子类化的对话框的窗口过程中为它设置背景颜色。如果窗口缩小,则会为编辑控件显示滚动条。一切正常,您可以选择,复制,左右滚动文本。

    case WM_CTLCOLORSTATIC:
        if ((HWND)lParam == GetDlgItem(hwndDlg, IDC_DEBUGGER_DISASSEMBLY))
        {
            SetBkColor((HDC)wParam, RGB(255, 255, 255));
            return (LRESULT) GetStockObject(DC_BRUSH);
        }
        break;

我想在特定行后面制作自定义背景颜色。我的正常BG在那里是白色的,对于那条线,我想要蓝色。

我尝试使用WM_PAINT作为编辑控件,但是我似乎必须再次绘制文本,否则在我选择它之前,控件的原始文本将不可见。如果我手动绘制文本,它也不会像原始文本一样滚动。

1 个答案:

答案 0 :(得分:1)

如果您必须拥有编辑控件,那么我就不会看到解决方案。但是,通过一些调整,您可以使用丰富的编辑控件。它接受大多数与编辑控件相同的消息。诀窍是使用SetCharFormat设置要更改的行的格式。