社区
界面
帖子详情
对话框如何响应按键消息?我想用来做按钮快捷键(在线等)
luchang
2005-07-28 04:48:10
按钮可以定义快捷键,但是只有在按钮获得焦点时才有效
我希望无论什么时候都能响应按键消息
可是我用SPY发现对话框对按键消息不响应
问对话框能响应按键消息吗?如何实现?
...全文
445
6
打赏
收藏
对话框如何响应按键消息?我想用来做按钮快捷键(在线等)
按钮可以定义快捷键,但是只有在按钮获得焦点时才有效 我希望无论什么时候都能响应按键消息 可是我用SPY发现对话框对按键消息不响应 问对话框能响应按键消息吗?如何实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lianglp
2005-07-28
打赏
举报
回复
建议注册系统热键来实现。这样太快了。
caocheng8230
2005-07-28
打赏
举报
回复
我的做法是在preTranslateMessage()中去拦截消息然后组合消息,然后再处理
goodboyws
2005-07-28
打赏
举报
回复
用Accelerator,很佩服楼上,好详细啊
Kudeet
2005-07-28
打赏
举报
回复
方法一:
http://support.microsoft.com/?kbid=222829
1 插入一个新的Accelerator到资源里,把加速键和对应的响应控件(如一个按钮)关联
2 在对话框头文件中声明:
HACCEL m_hAccel;
3 在对话框的构造函数里初始化m_hAccel
m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));
4 然后重载对话框的PreTranslateMessage函数,在
BOOL CAboutDlg::PreTranslateMessage(MSG* pMsg)
{
if (m_hAccelTable)
{
if (::TranslateAccelerator(m_hWnd, m_hAccelTable, pMsg))
{
return(TRUE);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
方法二:
1 声明热键消息处理函数原型
在.h中消息映射声明处(AFX_mSG字样之后)加入如下语句:
LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
2. 消息与相应处理函数相关联
在.Cpp中加入消息映射宏,使消息与相应处理函数发生关系,
ON_MESSAGE(WM_HOTKEY,OnHotKey);
3. 为方便以后的操作
预先在类中创建一个响应WM_CREATE和WM_DESTROY消息的函数
OnCreate()与OnDestroy()的框架
4.向系统登记热键
在OnCreate()函数中加入如下代码以向系统登记热键,本例子的热键设为
Ctrl+Shift+A.
RegisterHotKey(m_hWnd,1001,MOD_CONTROL|MOD_SHIFT,'A');
RegisterHotKey(m_hWnd,1002,MOD_CONTROL|MOD_SHIFT,'a');
5.处理热键
在消息处理函数OnHotKey()中对热键进行处理,并可加入用户希望运行的程序代码
LRESULT C****::OnHotKey(WPARAM wParam,LPARAM lParam)
if(wParam==1001||wParam==1002)
CWnd::SetForegroundWindow();//使得被激活窗口出现在前景
MessageBox("Hello!");
//用户可在此添加代码
return 0;
6.程序运行完毕后解除热键
在OnDestroy()中通过UnRegisterHotKey()解除热键登记,释放系统资源.
UnRegisterHotKey(m_hWnd,1001);
UnRegisterHotKey(m_hWnd,1002);
7.编译并运行程序
wuprograme
2005-07-28
打赏
举报
回复
在对话框中响应键盘消息只有直接在pretranslatemessage()中直接调用onkeydown()或onchar();
luchang
2005-07-28
打赏
举报
回复
还有,按钮定义的快捷键如果是数字的话,它不能区分 shift+num,也就是说我按下8和*结果都一样
该如何才能区分出shift+num??
键盘
按键
命令
六、使用“桌面”、“我的电脑”和“windows资源管理器”
快捷键
选择项目时,可以使用以下
快捷键
。 目的
快捷键
插入光盘时不用“自动播放” 功能按住 shift插入 cd-rom 复制文件按住 ctrl拖动文件 创建...
UE5虚幻初学者100例常见问题和解决方案
虚幻UE5常见问题和解决方案系列本教学由元老师录制,集中讲解大家在使用UE的过程中的一些常见问题。课程大纲:引擎
快捷键
项目设置插件配置添加C++编译报错打包报错分辨率设置课程持续更新中
软件界面设计工具_3款合集
这个原型是一个设置窗体,主要由
按钮
、复选框、分组框和文本框等控件构成,其中一些
按钮
还具有
响应
的动作(如打开另一个界面,关闭窗体等)。如图一所示,这是使用Firework制作出来的交互图。 图一、使用Firework...
windows程序设计第五版 chm 版本
……………………
按键
消息
…………………… 字符
消息
…………………… 键盘
消息
和字符集 …………………… 插入符号(不是光标) 7. 鼠标 …………………… 鼠标基础 …………………… 显示区域鼠标
消息
...
界面
15,980
社区成员
115,900
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章