MFC 对话框Dialog响应键盘事件

  1. OnKeyDown不行

Dialog程序本来没有直接响应键盘的事件,如果你用OnKeyDown会发现不起作用。

那么你想按下“左键”、“W键”、“9键盘”应该怎么响应呢?

重载基类的BOOL PreTranslateMessage(MSG* pMsg)函数

  1. 最简单的键盘响应函数

头文件声明:

BOOL PreTranslateMessage(MSG* pMsg);

源文件定义:

BOOL CmfcDlg::PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message == WM_KEYDOWN)

{

switch (pMsg->wParam)

{

case VK_ESCAPE://屏蔽ESCAPE键

return TRUE;

//VK_A - VK_Z are the same as ASCII ‘A’ - ‘Z’ (0x41 - 0x5A) 不区分大小写

case ‘A’:

AfxMessageBox(_T(“A key down”));return TRUE;

case VK_RIGHT:

AfxMessageBox(_T(“-> key down”));return TRUE;

case ‘0’:

AfxMessageBox(_T(“0 key down”));return TRUE;

default:

return TRUE;

}

}

return CDialogEx::PreTranslateMessage(pMsg);

}

时间: 2024-11-09 01:20:13

MFC 对话框Dialog响应键盘事件的相关文章

MFC 对话框Dialog响应键盘事件(组合键Ctrl+A)

在上一篇文章的基础上,这里描述如何捕获组合键,这里以Ctrl+A为例 做法就是按下Ctrl的时候用一个静态成员变量保存Ctrl是否被按下,当Ctrl按下的时候设置为true:当Ctrl键抬起的时候设置为false 其他组合键的开发用此例举一反三即可. 头文件声明 BOOL PreTranslateMessage(MSG* pMsg); 源文件定义 BOOL CmfcDlg::PreTranslateMessage(MSG* pMsg) { static bool m_ctrl_down = fa

Ogre: 建立一个简单的框架——响应键盘事件

[转载请保证内容的完整性和正确性] 建立一个简单的框架——响应键盘事件 上一节我们在场景中添加了一个机器人,这一节我们将建立一个FrameListener类(顾名思义,这是一个侦听类),来控制模型进行移动. 创建FrameListener类 FrameListener类主要负责事件的侦听,如帧结束.键盘输入等事件.它继承自ExampleFrameListener类,如果需要的话还可以继承KeyListener(键盘事件).MouseListener(鼠标事件)和JoyStickListener(

VC++ 对话框程序响应键盘消息的处理方法的说明(非常重要)

基于MFC对话框的应用程序在响应按键消息和热键方面都力不从心,CDialog类的消息循环中去掉了TranslateAccelerator函数,因此不能响应热键:同时由于对话框上可能有很多控件,且默认情况下这些子窗口已经截获了焦点,因此键盘消息已经被控件捕获了:同时为了实现控件焦点切换和对话框默认行为,  VK_TAB.VK_LEFT.VK_RIGHT.VK_UP.VK_DOWN. VK_RETURN.VK_ESCAPE 等键已经被截获处理,因此对话框没有控件时仍然不能完全响应按键消息. 关于热键

C# WinForm自定义控件响应键盘事件

自己定义的winform控件,用其他键盘事件都无法响应,只有用ProcessCmdKey事件可以达到目的(别忘了主窗体的KeyPreview属性要设置为true),写法如下:         protected override bool ProcessCmdKey(ref Message msg, Keys keyData)         {             switch (keyData)             {                 case Keys.Alt | 

给Jquery添加alert,prompt方法,类似系统的Alert,Prompt,可以响应键盘,支持拖动

我们在调用系统的Alert,prompt的弹出提示时,不同的系统会有不同的提示框,视觉效果不统一,而且不好看,功能单一,现在我们通过Jquery模拟Alert,prompt,现实统一视觉效果,而且内容丰富的弹出提示. Jquery可以扩展自己的功能,如果对Jquery开发插件不熟悉的人可以到官方网去看看文档,比较简单易懂. Js代码   /* *  本插件基于JQUERY *  Jquery版本: 1.7.2 *        Date:2012-06-28 *      Author:King

[原]MFC中DIALOG(对话框)程序响应加速键(快捷键)

[原]MFC中DIALOG(对话框)程序响应加速键(快捷键) 2014-8-6阅读266 评论0 新建一个对话框程序,项目名为Test,删除默认确定,取消和静态文本框控件.添加一个按钮,Caption修改为“打开”,ID为IDC_Open,双击该按钮添加响应函数,响应函数如下: void CTestDlg::OnBnClickedOpen() { MessageBox("打开 被按下"); } 即程序运行之后点击“打开”则弹出一个对话框. 下面为这个按钮添加快捷键ctrl+o.左下角切

【mfc】鼠标、键盘响应事件

对于mfc这东西,你真的必要跟我扯一大堆怎么类,什么派生,什么鬼东西 告诉我怎么做出一个个小功能,我记住它就可以了 这期为大家带来MFC的鼠标响应事件 这也是所谓的MFC中的"消息映射事件" 一.基本目标 1.有一个基本的MFC程序,点击"关闭"则"关闭"这个程序,这点没什么好讲的,把自带的"取消"按钮,右键->属性的Caption改成"关闭"二字就可以了 2.鼠标在对话框中移动,则显示其位置信息,这

MFC 对话框响应OnChar()

最近在写程序时,出现了对话框里面不接收键盘消息的情况,特别搜索了以下内容 MFC中对话框是不会直接响应OnChar和OnKeyDown消息的,会被 其它控件拦截,测试时发现不会进入这两个函数,必须重定义PreTranslateMessage()虚函数才能正确地 进入这两个消息函数,具体实现如下: BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { SendMessage(pMsg->message,pMsg->wParam,pMsg->lPar

UITextView: 响应键盘的 return 事件

UITextFieldDelegate代理里面响应return键的回调:textFieldShouldReturn:.但是 UITextView的代理UITextViewDelegate 里面并没有这样的回调.但是有别的方法可以实现:UITextViewDelegate里面有这样一个代理函数: - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSStri