为什么我的Dialog按回车键就自动关闭了!

watercelery 2006-03-31 02:08:32
如题?

我要响应我的ComboBox,当输入完毕用户按回车,就刷新数据?按怎么做?
在ComboBox的哪个事件里写?
...全文
731 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
toumao 2006-04-01
  • 打赏
  • 举报
回复
事实上没必要这么烦,
只要重载OnOk,去掉CDialog.OnOk(),
那么按回车就不会关闭了。
同时有一个副作用:按那个确认按钮也不再关闭了,
你把ID为IDOK的按钮删了,添一个按钮,别叫IDOK了就可以了。
kugou123 2006-03-31
  • 打赏
  • 举报
回复
PreTranslateMessage里面处理一下
sakaer 2006-03-31
  • 打赏
  • 举报
回复
to: toumao(偷猫)
应该不会把正常的回车过滤掉,可以只当当前焦点在这个combobox上的时候执行刷新动作。
可以像下面这样做:
if((VK_RETURN == pMsg->wParam) && (WM_KEYDOWN == pMsg->message)){
UpdateData(TRUE);
HWND hWnd = ::GetFocus();
int nID = ::GetDlgCtrlID(hWnd);
if( IDC_COMBOBOX == nID){
//do somthings
.......................
}
}
仅供参考。
toumao 2006-03-31
  • 打赏
  • 举报
回复
我反对重载PreTranslateMessage(MSG* pMsg)
这样做会把正常的回车也过滤掉,
比如你在一个允许回车的TextBox中输入文字时
goodheartppl 2006-03-31
  • 打赏
  • 举报
回复
1 把ONOK去掉

2 PRETRANLATEMESSAGE 中设置 VK——RETURN

3 设置DEFUALT BUTTON 到别的BUTTON上
kkw2006 2006-03-31
  • 打赏
  • 举报
回复
OK, Cancel的按钮属性可能选上了Default button。。。

用这个消息:ON_CBN_SELCHANGE。。。。

zkxz 2006-03-31
  • 打赏
  • 举报
回复
重载PreTranslateMessage(MSG* pMsg)是比较好的选择。
xqk 2006-03-31
  • 打赏
  • 举报
回复
重载OnOK虚函数,并不做任何处理就可以了

因为程序默认将回车与CDialog的虚函数OnOK进行关联了
wuqingabc 2006-03-31
  • 打赏
  • 举报
回复
类向导里选择消息即可,你也可以想他们说的那样,重载OnOK()函数
//////////////////////////////////////////
我的是基于 Dialog的工程,
需要如何重载PreTranslateMessage(MSG* pMsg)
ncucf 2006-03-31
  • 打赏
  • 举报
回复
先选择lei视图,然后就会有重写虚函数,你找到pretranslatemessage就可以了!
watercelery 2006-03-31
  • 打赏
  • 举报
回复
我的是基于 Dialog的工程,
需要如何重载PreTranslateMessage(MSG* pMsg)
nkwesley 2006-03-31
  • 打赏
  • 举报
回复
自己相应一下OnOK和OnCancel
cpio 2006-03-31
  • 打赏
  • 举报
回复
主要是窗口默认响应回车键为ONOK

你重写一下ONOK就行了

把CDialog::OnOK();注释掉
wuqingabc 2006-03-31
  • 打赏
  • 举报
回复
要重载PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN:
return true;
case VK_ESCAPE:
//这里做回车相应的处理
}
}

return CDialog::PreTranslateMessage(pMsg);
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧