作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我试图捕捉 EN_SelChange 事件,但它从未触发,尽管我已经添加了
rich->SetEventMask(rich->GetEventMask() | ENM_CHANGE | ENM_SELCHANGE);
在 OnInitDialog 中。所以我尝试在我的 OnEraseBkgnd 函数中添加以下代码。
BEdit *edit = (BEdit *)GetDlgItem(IDC_MAIN_EDIT1);
CRichEditCtrl *ctrl = &(edit->GetRichEditCtrl());
long s = 0 , e = 0;
ctrl->GetSel(s, e);
程序在 GetSel 函数上崩溃了
我现在正在想办法在文本被选中时更改其突出显示颜色。
最佳答案
我想出了一个解决这个问题的方法。从消息循环中捕获选择消息:
BOOL CNotepadDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == 514||(pMsg->message == 257 && (pMsg->wParam == 40|| pMsg->wParam == 39 || pMsg->wParam == 38 || pMsg->wParam == 37)))
{
CString str;
BEdit *edit = (BEdit *)GetDlgItem(IDC_MAIN_EDIT1);
edit->GetRichEditCtrl().GetSel(start, end);
......
}
......
}
514是鼠标选择事件,257是键盘事件代码。当消息为 257 时,wParam 代表触发该事件的键。通过这种方式我们可以捕捉到选择事件,虽然它不够优雅......
Bill Sun
关于c++ - 如何更改 CRichEditCtrl 中的突出显示颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29925946/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!