LRESULT CEditRO::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { if(message==WM_SETTEXT) { SetWindowText((const char*)lParam); return TRUE; } return CEdit::DefWindowProc(message, wParam, lParam);}
class CEditRO: public CEdit{ ... ...private: bool m_bIsIn_WM_SETTEXT; void SetWindowText_forRO(const char* text); ... ...};
CEditRO::CEditRO(){ m_bIsIn_WM_SETTEXT=false; ...}void CEditRO::SetWindowText_forRO(const char* text){ ... CEdit::SetWindowText(text); ...}
LRESULT CEditRO::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { if(message==WM_SETTEXT) { if(!m_bIsIn_WM_SETTEXT) { m_bIsIn_WM_SETTEXT=true; SetWindowText_forRO((const char*)lParam); m_bIsIn_WM_SETTEXT=false; return TRUE; } } return CEdit::DefWindowProc(message, wParam, lParam);}