我编程的RichEditCtrl控件的OnKillFocus事件就是不响应,如何能相应啊向change有EMN_CHANGEOnKillFocus也没有啊,怎么办啊?

解决方案 »

  1.   

    EN_CHANGE
    ==========
    重载CRichEditCtrl类,然后重载WM_KEYDOWN消息,并且在使用的类中通过PreTranslateMessage截获消息号为15的消息(为了获得通过SetWindowText改变内容的改变)。
    代码如下:
    if(pMsg->hwnd == m_RichEditCtrlTest.GetSafeHwnd())
    {
    //使用此句捕捉此消息的时候只能连续捕捉到30个,即超过30个字符的时候无效
    if(pMsg->message == 15)//EN_CHANGE//#define EN_CHANGE 0x0300
    {
    CString strShow;
    strShow.Format("改变次数:%ld次",++m_nChangeNum);
    GetDlgItem(IDC_STATIC_CHANGE)->SetWindowText(strShow);
    }
    //就是使用此句Debug时发现其改变的消息参数为15,
    //也可以使用此句获得其他的消息参数
    TRACE("%d\n",pMsg->message);
    }
      

  2.   

    OnKillFocus也没有啊,怎么办啊?
    ===============
    从CRichEditCtrl类派生新的CMyRichEditCtrl类,然后重载WM_KILLFOCUS消息即可!
      

  3.   

    http://blog.csdn.net/laiyiling/archive/2004/09/30/121220.aspx