我想在另一窗体发一消息触发原窗体的一文本框onchange事件

解决方案 »

  1.   

    EN_CHANGE
    wParam
    The low-order word specifies the edit control identifier. 
    The high-order word specifies the notification message. lParam
    Handle to the edit control. 
      

  2.   

    pWnd->PostMessage(EN_CHANGE)或pWnd->SendMessage(EN_CHANGE)
    pWnd指向原窗体。
      

  3.   

    ClassWizard  EN_CHANGE
      

  4.   

    在一个窗体中获得另一个窗体的PWND指针.然后用这个指针发送消息.
      

  5.   

    我在另一窗体给原窗体中的文本框填内容(用setwindowtext),或发en_change.
    原窗体文本控件的onchang事件始终不触发,但内容确填进去了,为什么?
      

  6.   

    我试了一下,SetWindowText()会触发EN_CHANGE消息,而且即使新设置的文本内容跟原来的一致,也会发送。不知道你是怎么确定该消息没有被触发的。
    另外,EN_CHANGE消息的发送应该是这样的
        PostMessage( WM_COMMAND, MAKEWPARAM( ID_YOUR_EDIT, EN_CHANGE ),
            LPARAM( m_hYourEditWnd ) ) ;
    这里假设ID_YOUR_EDIT是你的编辑框的ID,m_hYourEditWnd是编辑框窗口句柄。顺便问一下,现在把window翻译成 "窗体" 而不是 "窗口" 了吗?
      

  7.   

    死活没有触发onchange事件,onupdate也没触发,但内容确实却改变了。你在不同窗口试过了吗?
      

  8.   

    我试的情况是这样的:
      一个基於对话框的程序,在主对话框中有一个编辑框和一个按钮,按下这个按钮出来一子对话框,子对话框上也有一个按钮,按下子对话框的按钮的时候,调用SetWindowText或者发送EN_CHANGE,都能触发主对话框中的编辑框向主对话框发送EN_CHANGE消息。
      

  9.   

    EN_CHANGE  别忘了发送数据以后最好更新  updatedata()