加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

[置顶] duilib中Richedit如何支持TextChanged

发布时间:2020-12-13 20:42:59 所属栏目:PHP教程 来源:网络整理
导读:在duilib开发中,小火伴会由于CEditUI的各种问题,而转为使用CRichEditUI来代替。但是CRichEditUI控件却不支持文字变化通知事件,下面通过简单几行代码让RichEdit支持文字变化事件。 在UIRichEdith.cpp文件中搜索::OnTxNotify,然后使用以下代码替换此函数:

在duilib开发中,小火伴会由于CEditUI的各种问题,而转为使用CRichEditUI来代替。但是CRichEditUI控件却不支持文字变化通知事件,下面通过简单几行代码让RichEdit支持文字变化事件。

在UIRichEdith.cpp文件中搜索::OnTxNotify,然后使用以下代码替换此函数:

void CRichEditUI::OnTxNotify(DWORD iNotify,void *pv) { switch(iNotify) { case EN_CHANGE: { GetManager()->SendNotify(this,DUI_MSGTYPE_TEXTCHANGED); break; } case EN_DROPFILES: case EN_MSGFILTER: case EN_OLEOPFAILED: case EN_PROTECTED: case EN_SAVECLIPBOARD: case EN_SELCHANGE: case EN_STOPNOUNDO: case EN_LINK: case EN_OBJECTPOSITIONS: case EN_DRAGDROPDONE: { if(pv) { LONG nId = GetWindowLong(this->GetManager()->GetPaintWindow(),GWL_ID); NMHDR *phdr = (NMHDR *)pv; phdr->hwndFrom = this->GetManager()->GetPaintWindow(); phdr->idFrom = nId; phdr->code = iNotify; if(SendMessage(this->GetManager()->GetPaintWindow(),WM_NOTIFY,(WPARAM) nId,(LPARAM) pv)) { } } } break; } }

好了,需要的小火伴赶快试试吧!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读