RichEdit 选中文本的高亮显示 VC++
RichEdit控件失去焦点后,选中文本不再高亮显示。
有两种方法可以改变,使得控件失去焦点仍然保持高亮:
方法一:创建控件时设置ES_NOHIDESEL风格
m_hWndREdit = CreateWindow(_T("RichEdit20W"), NULL, //RICHEDIT_CLASS RichEdit20A RichEdit20W WS_CHILD | WS_VISIBLE | ES_MULTILINE | WS_VSCROLL|ES_NOHIDESEL, //始终高亮显示选中 0, 0, 0, 0, m_hWnd, (HMENU)IDC_EDITMSG2, m_hInst, NULL);
方法二:发EM_HIDESELECTION消息
SendMessage(m_hWndREdit, EM_HIDESELECTION, 0, 0); //保持选中文本的高亮 SendMessage(m_hWndREdit, EM_HIDESELECTION, 1, 0); //取消文本的高亮,使得立即看到效果
实际用方法二更方便,一般会有两种场景:
1.查找,这时需要保持高亮,以便操作查找对话框时,能清楚看到目标
2.设置字体,这时不要保持高亮,以便设置后立即能看到效果,特别是颜色,而不是还要另外取消选中才能看到效果。