社区
界面
帖子详情
非可编辑控件接收方向键按键消息
MFCJCK
2010-08-27 09:27:44
问题:在对对话框中的一个非可编辑控件,如按钮控件,如何接收方向键按键消息。
失败的方法:我试过在按钮中响应WM_CHAR、WM_KEYDOWN好像都不行。
现象:我按下方向键 好像只是对话框焦点在几个控件中切换。求助高手了~~~
...全文
166
11
打赏
收藏
非可编辑控件接收方向键按键消息
问题:在对对话框中的一个非可编辑控件,如按钮控件,如何接收方向键按键消息。 失败的方法:我试过在按钮中响应WM_CHAR、WM_KEYDOWN好像都不行。 现象:我按下方向键 好像只是对话框焦点在几个控件中切换。求助高手了~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
MFCJCK
2010-08-27
打赏
举报
回复
在大家指导下 我找到了这个WM_GETDLGCODE。可以在控件中处理方向键和TAB键消息。多谢大家,尤其感谢是wujiabao。
wujiabao
2010-08-27
打赏
举报
回复
BOOL CREdit::Create(HWND pParent, int x, int y, int w, int h, int style)
{
m_pParent = pParent;
WNDCLASSEX wcex;
int ret;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = newwndproc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = (HINSTANCE)GetWindowLongPtr(pParent,GWL_HINSTANCE);
wcex.hIcon = NULL;
wcex.hCursor = LoadCursor(NULL, IDC_IBEAM);
wcex.hbrBackground = (HBRUSH)(COLOR_GRAYTEXT);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClassRedit;
wcex.hIconSm = NULL;
ret = RegisterClassEx(&wcex);
ret = GetLastError();
m_hWnd = CreateWindowEx(WS_EX_ACCEPTFILES,szWindowClassRedit, TEXT("redit"), style | WS_TABSTOP, x, y, w, h, pParent, NULL, NULL,0);
ret = GetLastError();
if(m_hWnd == NULL) return FALSE;
return TRUE;
}
MFCJCK
2010-08-27
打赏
举报
回复
[Quote=引用 7 楼 wujiabao 的回复:]
可以的, 我刚刚试了我的程序
[/Quote]
能把部分代码 发我邮箱看看嘛?mfcjck@yeah.net 谢谢啦
MFCJCK
2010-08-27
打赏
举报
回复
[Quote=引用 3 楼 visualeleven 的回复:]
对话框默认是不直接处理WM_KEYDOWN消息的,你可以重载PreTranslateMessage虚函数,在它里面处理WM_KEYDOWN消息
[/Quote]
我是要在控件中响应 方向键按键事件,请问有什么方法吗?
wujiabao
2010-08-27
打赏
举报
回复
可以的, 我刚刚试了我的程序
MFCJCK
2010-08-27
打赏
举报
回复
[Quote=引用 5 楼 wujiabao 的回复:]
试一下我的方法,100%可以, 我也遇到跟我想同的问题, 就这么解决的
[/Quote]
我是MFC里 控件对方向键的响应。。我好想还没看懂您的方法哦,麻烦您在解释一下,行吗?
wujiabao
2010-08-27
打赏
举报
回复
试一下我的方法,100%可以, 我也遇到跟我想同的问题, 就这么解决的
MFCJCK
2010-08-27
打赏
举报
回复
PreTranslateMessage(MSG* pMsg) 好像也不行。小弟愚笨,还请说明。
我要在控件中响应方向键。。但控件直接把方向键传给了对话框类。请问该怎么在控件中截获。
Eleven
2010-08-27
打赏
举报
回复
对话框默认是不直接处理WM_KEYDOWN消息的,你可以重载PreTranslateMessage虚函数,在它里面处理WM_KEYDOWN消息
wujiabao
2010-08-27
打赏
举报
回复
用CreateWindexEx创建窗口, 窗口的dwExStyle为WS_EX_ACCEPTFILES
dwStyle为WS_CHILE|WS_VISIBLE|WS_TABSTOP
创建完成后, 窗口的焦点一般不会在你这个窗口上, 即时你使用了SetFocus
所以你在消息处函数里加入
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
SetFocus(hwnd);
这样你用鼠标点击一下你的窗口,获得焦点后,就可以接收WM_KEYDOWN消息了
na_he
2010-08-27
打赏
举报
回复
PreTranslateMessage(MSG* pMsg) 中处理了
输入框为空回车切换到下一个
控件
输入框为空回车切换到下一个
控件
.rar
Qt简单编程--夺取
按键
事件
窗口上的
控件
就像photoshop中的层,
控件
的事件会被某层吸收掉,以致想用时却用不了。 一个例子,创建一个Text Edit,这个Text Edit会吸收掉那些
编辑
性的
按键
,如所有字母,
方向键
等,而F键(功能键)则不吸收。 也就是,你的代码可
接收
到F键但
接收
不到字母方向等
按键
。 如果非要从Text Edit夺取这些被吸收掉的
按键
,Qt还是允许你这样做的。 从这个角度来看,我重新认识了eve
键盘
消息
参考一:关于键盘输入
关于键盘输入 应用程序应该像
接收
鼠标输入一样可以
接收
键盘输入,Windows中的应用程序是以窗体
消息
的形式来获取键盘输入。
本节包括以下内容:键盘输入模型键盘聚焦及激活
按键
消息
字符
消息
键状态
按键
及字符转换热键支持浏览及其他功能键模拟输入语言、场所及键盘布局键盘输入模型
系统通过安装当前键盘的设备驱动来实现与应用程序的设备无关性,也可以通过用户或应用程序的键盘布局设置来实现语言无关性。键盘设备驱动
接收
键盘的“扫描码”,然后把“扫描码”发送给键盘布局,通过键盘布局被转换为
Qt
控件
----
按键
文章目录按钮:一、 QPushButton1.
控件
简介2. 用法示例3. 运行效果二、 QToolButton1.
控件
简介2. 用法示例3. 运行效果三、 QRadioButton1.
控件
简介2. 用法示例3. 运行效果四、 QCheckBox1.
控件
简介2. 用法示例3. 运行效果五、 QCommandLinkButton1.
控件
简介2. 用法示例3. 运行效果六、 QDialogButtonbox1.
控件
简介2. 用法示例3. 运行效果 从这章开始我们开始学习Qt 的窗口部件,其中每种类型的
模拟键盘
按键
模拟键盘
按键
界面
15,978
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章