很简单的一个问题,界面有一个下拉框,选择某项后,会进行某些操作。这部分是在相应的处理函数OnSelchangeComboDevice中写的
消息映射如下:
ON_CBN_SELCHANGE(IDC_COMBO_DEVICE, OnSelchangeComboDevice)
我现在想通过sendmessage控制下拉框,选择某一项后,也要执行相应的操作,即运行函数OnSelchangeComboDevice,要怎么发送消息?GetDlgItem(IDC_COMBO_DEVICE)->SendMessage(CB_SETCURSEL,0,1); 这样发送消息只能是下拉框选中第一个,但是没有运行OnSelchangeComboDevice里的内容

解决方案 »

  1.   

    CComboBox* pCombo = (CComboBox*)GetDlgItem(IDC_COMBO1);
    ASSERT(pCombo && pCombo->GetSafeHwnd());
    UINT nID = pCombo->GetDlgCtrlID();
    pCombo->SendMessage(CB_SETCURSEL, 1, 0);
    PostMessage(WM_COMMAND, MAKEWPARAM(nID, CBN_SELCHANGE), (LPARAM)pCombo->GetSafeHwnd());
      

  2.   


    有用。谢谢。在问个略偏题的问题,关于mfc的消息传递,该如何学习我当时就想消息映射也是传递消息吗,组织一下消息传过去就行了,但是查源码查到
    #define ON_CONTROL(wNotifyCode, id, memberFxn) \
    { WM_COMMAND, (WORD)wNotifyCode, (WORD)id, (WORD)id, AfxSigCmd_v, \
    (static_cast< AFX_PMSG > (memberFxn)) },
    这一步就搞不懂了