我创建了一个具有以下样式的富文本框
WS_VISIBLE | WS_CHILD | ES_NOHIDESEL | ES_MULTILINE | ES_LEFT | WS_VSCROLL | ES_AUTOVSCROLL
我希望用户无法在其中写入并且输入控件时光标不会改变。
我试过了
ES_READONLY
属性,但是当单击该控件时,它会发出警告噪音,并且光标也会发生变化。
我也尝试禁用该控件,但背景颜色已更改并且用户
无法再使用卷轴。
我怎样才能实现这一目标。
编辑
我忘了说我已经对控件进行了子类化,以便我可以接收所有消息
LRESULT CALLBACK RichTextBoxProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwrefData){
switch(message){
case WM_PAINT:
break;
//(...)
default:
return DefSubclassProc(hwnd, message, wParam, lParam);
}
return DefSubclassProc(hwnd, message, wParam, lParam);
}
谢谢。
最佳答案
尝试:
LRESULT CALLBACK RichTextBoxProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwrefData){
switch(message){
case WM_PAINT:
break;
case WM_LBUTTONDOWN:
SetFocus(mainWindowHandle);
return 0;
case WM_SETCURSOR:
if(LOWORD(lParam) == HTCLIENT ){return 1;}
break;
default:
return DefSubclassProc(hwnd, message, wParam, lParam);
}
return DefSubclassProc(hwnd, message, wParam, lParam);
}
瓦尔特
关于c - 用户未与 Richtextbox 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22578511/