/* 消息触发CBN_SELCHANGE事件 */
WPARAM wParam = MAKELPARAM(IDC_COMBO_USER, CBN_SELCHANGE);
CSDJMDlg *pDlg = &(pView->m_Page_SDJMDLG);
HWND hWnd = ( (CComboBox *)( pDlg->GetDlgItem(IDC_COMBO_USER) ) )->m_hWnd;
pDlg->SendMessage( WM_COMMAND,wParam,(LPARAM)hWnd );
补充一:
CB_SETCURSEL 消息并不能触发CBN_SELCHANGE消息:
The CBN_SELCHANGE notification code is not sent when the current selection is set using the CB_SETCURSEL message.
补充二:
控件的ID可以使用GetDlgCtrlID获取.以下为在派生的CCombobox中使用的例子:
// 给父窗口发送选项改变的消息
WPARAM wParam = MAKELPARAM(GetDlgCtrlID(), CBN_SELCHANGE);
GetParent()->PostMessage(WM_COMMAND, wParam, (LPARAM)m_hWnd);
注意:消息必须是发送到combobox所属窗口,而不能发送给ComboBox本身。