[置顶] 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;
}
} 好了,需要的小火伴赶快试试吧! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |