标题:EDIT 回车问题
只看楼主
Prokid
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-4
 问题点数:0 回复次数:8 
EDIT 回车问题
我是个刚接触VC的小菜,有个问题已经困扰了我很久,也在其他论坛发过贴求助,但得到的答案不是太简略就是根本行不通,
所以我把我最后的希望寄托在编程中国论坛里的达人们
问题:在基于对话框的MFC中添加一个EDIT控件,在里面输入数据(包括后字符)按回车想让它执行按钮控件里的代码,但默认的是在EDIT中输入完后按回车会关掉程序,怎么解决这个问题(我把默认的OK按钮删除了,添加的是新的按钮)?
搜索更多相关主题的帖子: EDIT 回车 
2008-04-04 11:16
LSJYLP
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-2
得分:0 
重载PreTranslateMessage函数,让它收到回车键被按下的消息后执行你所需要的代码。给你一个例子:
BOOL CTestDlg::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)
        {
            AfxMessageBox("你好");
        }
    return CDialog::PreTranslateMessage(pMsg);
}
2008-04-04 13:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
看来楼上对键盘发送的消息机制懂的很深刻..觉得应该可以解决问题了..

学习需要安静。。海盗要重新来过。。
2008-04-04 19:01
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
得分:0 
这个,汗...不用那么复杂,直接将编辑框设置成多行风格就OK,
要不自己在EDIT父窗口(一般是对话框)中,建立一个OnOk函数,它原型如下:
virtual void OnOK( );

然后在该函数中什么都不做就OK,硬要加就加个return吧

2008-04-04 19:57
Prokid
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-4
得分:0 
回复 4# 的帖子
这个办法只能解决回车关闭程序的问题吧.......
2008-04-04 20:26
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
得分:0 
要执行代码,? 执行什么代码? 程序代码? LZ,去研究一下编译原理,或者自己制作一个脚本编译程序,一般字符串,在OnOk中处理就OK

2008-04-05 10:33
Prokid
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-4
得分:0 
回复 2# 的帖子
我试了一下 但是按回车后程序还是自动关闭了
2008-04-05 11:05
Prokid
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-4
得分:0 
没人再帮看看吗?
2008-04-05 19:21
Prokid
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2008-4-4
得分:0 
回复 2# 的帖子
搞定!谢谢2楼的
2008-04-06 18:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207074-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020245 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved