在DLG中定义CEditEx m_Edit,之后在某个函数中
我调用m_Edit.PostMessage(WM_COMMAND,MAKEWPARAM(0,EN_CHANGE),0);想让自绘的EDIT控件响应
ON_CONTROL_REFLECT(EN_CHANGE, &CEditEx::OnEnChange),结果发现并没有成功,求方法??在线等

解决方案 »

  1.   

    在PostMessage函数里你有指定窗口句柄么,貌似PostMessage的第一个参数是句柄吧。
      

  2.   

    囧,你重载了CEdit类为CEditEx类,你在CEditEx中添加=EN_CHANGE消息就可以了,不需要发送
      

  3.   

    在QQ对话框里面输入你要发的文字,按Ctrl + 回车即可发送消息。
      

  4.   

    头文件里声明:afx_msg void OnEnChangeEdit();
    源文件里定义:ON_EN_CHANGE(IDC_EDIT, OnEnChangeEdit)IDC_EDIT为控件ID然后你就可以定义你的OnEnChangeEdit了
      

  5.   

    我添加了,因为我是在EN_CHANGE中对应的函数来控制自绘的滚动条显示和隐藏,问题是我通过SetWindowText传入m_Edit大量文本时,它不响应EN_CHANGE,所以滚动条不会显示,所以我想通过发消息来调用一次EN_CHANGE对应的函数
      

  6.   

    那你也应该向父窗口发啊
    SendMessage(WM_COMMAND, MAKEWPARAM(IDC_EDIT1, EN_CHANGE), (LPARAM)m_Edit.GetSafeHwnd());
      

  7.   

    或者PostMessage(WM_COMMAND, MAKEWPARAM(IDC_EDIT1, EN_CHANGE), (LPARAM)m_Edit.GetSafeHwnd());
      

  8.   

    不是在EditEx中调用吗,为什么要向EditEx的父窗口发消息?
      

  9.   

    在父窗口类中发送这个EN_CHANGE消息,而不是在你的CEditEx类中发送这个。
      

  10.   

    用法:描述|通用符          例如要设置显示txt就txt|*.txt 
    CString szFilter(_T("image file(*.jpg, *.gif)|*.jpg;*.gif||"));
    CFileDialog dlgFile(TRUE, _T("jpg"), NULL, 4|2, szFilter, this);
      

  11.   

    CString szFilter(_T("Image File(jpg,png,bmp,jpeg,gif,wbmp)|*.jpg;*.png;*.bmp;*.jpeg;*.gif;*.wbmp|jpg|*.jpg|png|*.png|bmp|*.bmp|jpeg|*.jpeg|gif|*.gif|wbmp|*.wbmp||"));