| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3002 人关注过本帖
标题:关于MFC对话框程序的键盘响应方法
只看楼主 加入收藏
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:6 
关于MFC对话框程序的键盘响应方法
我写了一个mfc对话框,如图所示:

现在已经完成的是可以edit框中输入数据,然后点击“input”按钮输入;
我现在想要达到的目标是 可以在edit框中输入数据,然后 回车 这样也可以实现输入。

我搜了网上一些关于键盘响应函数的方法和问题,比如virtual BOOL PreTranslateMessage(MSG* pMsg); 函数的重载和WM_KEYDOWN函数的使用
但是这些函数仿佛又不是我需要的键盘响应函数,由于是初学者,我也不知道这个是不是自己需要的键盘响应函数。

希望大家可以指导一下我实现方法,以及这两种函数的适用范围。

谢谢各位大神!

[ 本帖最后由 聪儿 于 2012-11-30 20:10 编辑 ]
搜索更多相关主题的帖子: 如图所示 对话框 键盘 
2012-11-30 20:09
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
为什么我发不了图片呢?

好吧,我的界面就是一般的对话框,上面有一个编辑框可以输入数据,然后有一个 input 按钮,点击之后可以讲编辑框中的内容输出到一个list框中。。
2012-11-30 20:14
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 2楼 聪儿
指条规避的方案

在编辑框 附近  添加一个 按钮   
然后处理按钮响应事件就ok了

要效果更好点的  写完了这个再说

好好学......
2012-11-30 21:51
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
回复 3楼 寒风中的细雨
不好意思哦。。

你的好像不是我要的方法,我是说 enter 键之后,默认,不用多加按钮,点击按钮完成。。

还有,指条规避是什么?好像百度不到。
2012-12-01 10:09
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:20 
你可以在Edit控件里响应OnChange事件, 同时为Edit关联一个m_edit控件型变量,为ListBox关联一个m_lst控件型变量.
然后指定Edit的属性为"多行",勾选二个 "自动滚动", "需要回车".

void CTest2Dlg::OnChangeEdit1()
{
    // TODO: If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CDialog::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.
   
    // TODO: Add your control notification handler code here
    CString text;
    m_edit.GetWindowText(text);
    if(text.GetAt(text.GetLength()-1) == '\n')
    {
        m_lst.AddString(text);
        m_edit.SetWindowText("");
    }
   
}
test2.rar (29.59 KB)
2012-12-01 11:47
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
非常有用,灰常感谢哦!!
2012-12-02 17:52
聪儿
Rank: 1
等 级:新手上路
帖 子:75
专家分:3
注 册:2012-9-2
收藏
得分:0 
那能不能顺便 解释一下以下这段代码在实现这个功能方面 的作用?如果也可以实现,麻烦请稍微 解析一下这两者的区别。。。
BOOL CDecEdit::PreTranslateMessage(MSG* pMsg)
 {
 if (WM_KEYFIRST <= pMsg-> message && pMsg-> message <= WM_KEYLAST)
 {
 if(pMsg->wParam==VK_RETURN )
 {
     //向父窗口发送消息,通知父窗口执行按钮的功能
}
 }
return CEdit::PreTranslateMessage(pMsg);
 }
2012-12-02 17:58
快速回复:关于MFC对话框程序的键盘响应方法
数据加载中...
 
   



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

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