关于C++MFC对话框的显示问题

是这样的,简单来说就是:对话框1有个按钮BTN1。点击BTN1会隐藏对话框1,显示对话框2.对话框2有个Edit控件。可是每次运行程序,当我第一次在Edit控件上切换输入... 是这样的,简单来说就是:对话框1有个按钮BTN1。
点击BTN1会隐藏对话框1,显示对话框2.
对话框2有个Edit控件。
可是每次运行程序,当我第一次在Edit控件上切换输入法(Ctrl+Space或Ctrl+Shift)时不知道为什么总会弹出对话框1.把对话框1关掉之后,之后再切换输入法就不会了。
程序关掉再开的话,第一次切换输入法的时候还是会弹出对话框1.
请问这是为什么啊?
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励30(财富值+成长值)
幻城之血恋
2014-10-08 · TA获得超过100个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:50.1万
展开全部
按照你的说明,貌似对话框1是主窗口,对话框2是通过对话框1生成的,这里有一个父子关系在里面,自己慢慢摸索,可以尝试把对话框1也弄一对话框,切换输入法,显示对话框2,再切换输入法,看是否还有这中现象
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一森同学
2014-10-07 · 超过55用户采纳过TA的回答
知道小有建树答主
回答量:112
采纳率:100%
帮助的人:75.9万
展开全部
能看下代码或者代码发我看看?这个问题蛮有意思的。。
追问
发现提问者不能添加附件啊……传到网盘里面了。http://pan.baidu.com/s/1gdd4Iqf
其中编号为IDD_MENU的对话框的【查询学生成绩信息】按钮即对话框1的按钮BTN1.
点击后弹出IDD_QUERY对话框,在IDD_QUERY对话框切换输入法,就会弹出IDD_MENU对话框。我也不知道为什么……
追答
MENUDlg不是原来的那个额   是又创建了个新的MENUDlg。。。你怎么办到的= =

问题找到了,如果你想响应回车键的话直接重写OnOK(),不要用
case VK_RETURN:
OnLogin();
你切换输入法的时候会在PreTranslate中触发这句导致又一次调用了OnLogin(),从而相当于新建了一个MENUDlg。注释这句,问题解决。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式