如何让自己派生的CComboBox类响应回车事件
我自己派生了一个类
class CMyComboBoxEx : public CComboBox
在里面他的.h文件里添加了
virtual BOOL PreTranslateMessage(MSG *pMSG);
实现是这样实现的
BOOL CMyComboBoxEx::PreTranslateMessage(MSG *pMSG)
{
if(pMSG->message == WM_KEYDOWN)
{
if(pMSG->wParam == VK_RETURN)
{
MessageBox("sss",NULL,0);
}
}
return CComboBox::PreTranslateMessage(pMSG);
}
但是还是不能响应回车事件 试着添加了
OnKeyDown事件也是不能响应回车事件
/*******************************8/
整体的程序是这样的
我自己在多文档程序里面添加了Dialog ID为IDD_DLG_ADDR 在这个Dialog上添加了一个CComboBox控件ID为IDC_COMBO_ADDR
然后在CMainFrame添加成员变量
CDialogBar m_wndAddr;
CMyComboBoxEx m_BoAddr;
的Oncreate函数里面添加
/*添加地址栏的dialogbar*/
if(!m_wndAddr.Create(this,IDD_DLG_ADDR,WS_VISIBLE|WS_CHILD|CBRS_TOP,IDD_DLG_ADDR))
{/*创建CDialogBar*/
MessageBox(_T("Addr error!"),NULL,0);
return -1;
}
m_wndAddr.EnableDocking(CBRS_ALIGN_LEFT|CBRS_ALIGN_RIGHT);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndAddr);
CRect rcAddr;
m_wndAddr.GetClientRect(&rcAddr);
if(!m_BoAddr.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST,rcAddr,&m_wndAddr,IDC_COMBO_ADDR))
{/*创建CComboBox*/
MessageBox(_T("Addr Aombobox error!"),NULL,0);
return -1;
}