我在开发的时候遇到RichEdit无法响应textchanged消息。
开发RichEdit计算字符的时候遇到的,例:在RichEdit中,输入一个字符,下面有一个数字在增加计数。
修改源码:UIRichEdit.cpp
void CRichEditUI::DoInit()添加
void CRichEditUI::DoInit()
{
if(m_bInited) return ;
CREATESTRUCT cs;
cs.style = m_lTwhStyle;
cs.x = 0;
cs.y = 0;
cs.cy = 0;
cs.cx = 0;
cs.lpszName = m_sText.GetData();
CreateHost(this, &cs, &m_pTwh);
if( m_pTwh ) {
m_pTwh->SetTransparent(TRUE);
LRESULT lResult;
m_pTwh->GetTextServices()->TxSendMessage(EM_SETLANGOPTIONS, 0, 0, &lResult);
m_pTwh->GetTextServices()->TxSendMessage(EM_SETEVENTMASK, 0, ENM_DROPFILES|ENM_LINK|ENM_CHANGE, &lResult);
m_pTwh->OnTxInPlaceActivate(NULL);
m_pManager->AddMessageFilter(this);
if (!m_bEnabled) {
m_pTwh->SetColor(m_pManager->GetDefaultDisabledColor());
}
//以下为增加的内容
TxSendMessage(EM_GETEVENTMASK, 0, 0, &lResult);
lResult |= ENM_CHANGE;
TxSendMessage(EM_SETEVENTMASK, 0, lResult, &lResult);
}
m_bInited= true;
}
感谢菊花怪(界面的大牛了)duilib地址:菊花怪’duilib
myduilib地址:Ryan’duilib