怎样在CComboBox里响应按键?急,在线等
我想在一个CComboBox里面输入文本,然后按回车键调用一个小函数,大概就象IE里的地址栏一样,输入地址,回车,显示网叶。是不是要判断输入的字符是否是回车键,还是怎样?请高手赐教,最好给出一段代码!谢谢…… 问题点数:0、回复次数:9Top
1 楼wudhu(亮亮)回复于 2003-09-04 13:22:12 得分 0
重载函数PreTranslateMessage
BOOL CTabctrlDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg -> message == WM_KEYDOWN)
{
if(pMsg -> wParam == VK_RETURN)
{
//Do something
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}Top
2 楼bcpl(林平之)回复于 2003-09-04 13:30:46 得分 0
如果是对话框应用程序
void CYourDlg::OnOK()
{
if(GetFocus()->GetParent() == GetDlgItem(IDC_COMBO1))
{
AfxMessageBox("回车");
}
else
{
CDialog::OnOK();
}
}
Top
3 楼zhucde(【風間苍月】★<==>★【虚拟闲人】)回复于 2003-09-04 13:47:16 得分 0
BOOL CTabctrlDlg::PreTranslateMessage(MSG* pMsg)
{
if(GetFocus()==GetDlgItem(IDC_COMBOX1))//判断光标在不在combox里
if(pMsg -> message == WM_KEYDOWN)//处理键盘消息
{
if(pMsg -> wParam == VK_RETURN)
{
//此处执行你的程序
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
Top
4 楼wudhu(亮亮)回复于 2003-09-04 13:56:16 得分 0
我再改一改,呵呵。
BOOL CTabctrlDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg -> message == WM_KEYDOWN)//处理键盘消息
{
if(pMsg -> wParam == VK_RETURN)
{
if(GetFocus().GetParent()==GetDlgItem(IDC_COMBO1))//判断光标在不在combox里
{
//此处执行你的程序
return TRUE;
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
Top
5 楼goo_foo()回复于 2003-09-04 19:52:45 得分 0
谢谢各位!每人有分Top
6 楼flinming(flinming)回复于 2003-09-04 20:10:24 得分 0
WM_KEYDOWNTop
7 楼phidoo(楚天舒)回复于 2003-09-05 00:04:36 得分 0
VK_RETURN=13,我以前用的时候,好像VK_RETURN系统不认Top
8 楼FuzzyControl(模糊)回复于 2003-10-16 22:00:07 得分 0
好帖子Top
9 楼enoloo(在水一方)回复于 2003-10-18 09:47:27 得分 0
好象有一个专门的处理函数,你在clswizard中找找,是当选择了combobox中一个item之后按回车就激发的消息处理.Top




