我使用以下代码创建了一个只读的多行编辑框:
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);
}
问题是,当我突出显示或只是单击此编辑框中的文本时,会发生两件事:
我的代码中是否有任何错误或缺失?