在duilib開發(fā)中,小火伴會(huì)由于CEditUI的各種問題,而轉(zhuǎn)為使用CRichEditUI來代替。但是CRichEditUI控件卻不支持文字變化通知事件,下面通過簡(jiǎn)單幾行代碼讓RichEdit支持文字變化事件。
在UIRichEdith.cpp文件中搜索::OnTxNotify,然后使用以下代碼替換此函數(shù):
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;
}
}
好了,需要的小火伴趕快試試吧!