C ++ WinApi ReadOnly Multiline EditBox奇怪的行为

时间:2016-03-19 22:01:50

标签: c++ visual-studio winapi

我使用以下代码创建了一个只读的多行编辑框:

CreateWindow(L"EDIT", NULL,
        WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_READONLY,
        5, 60, 590, 180,
        hWnd, (HMENU)500, hInst, 0);

我添加了一些文字并更改了它的字体:

SendMessage(GetDlgItem(hWnd, 500), WM_SETFONT, WPARAM(hFont), TRUE);
SetWindowText(GetDlgItem(hWnd, 500), L"blah blah blahhh\r\n");

然后在WM_CTLCOLORSTATIC下(不是WM_CTLCOLOREDIT因为它是只读的)我更改了它的背景和文字颜色:

if ((HWND)lParam == GetDlgItem(hWnd, 500) ) {
    SetBkMode((HDC)wParam, TRANSPARENT);
    SetTextColor((HDC)wParam, RGB(255, 255, 255));
    return (LRESULT)GetStockObject(NULL_BRUSH);
}

问题是,当我突出显示或只是单击此编辑框中的文本时,会发生两件事:

  1. 字体粗细变为粗体和
  2. 突出显示的文字会在我点击
  3. 时突出显示

    我的代码中是否有任何错误或缺失?

0 个答案:

没有答案