社区
界面
帖子详情
非可编辑控件接收方向键按键消息
MFCJCK
2010-08-27 09:27:44
问题:在对对话框中的一个非可编辑控件,如按钮控件,如何接收方向键按键消息。
失败的方法:我试过在按钮中响应WM_CHAR、WM_KEYDOWN好像都不行。
现象:我按下方向键 好像只是对话框焦点在几个控件中切换。求助高手了~~~
...全文
155
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) 中处理了
C#编程经验技巧宝典
C#编程经验技巧宝典源代码,目录如下: 第1章 开发环境...123 <br>0209 如何使用正则表达式验证密码长度 124 <br>0210 如何使用正则表达式验证非零的正整数 124 <br>0211 如何使用正则表达式验证非零...
朱老师QT系列课程-1.7.QT其他标准
控件
和布局
控件
本课程是《朱老师QT完全学习系列课程》第1... 和 垂直布局 QVBoxLayout (3)格栅布局 QGridLayout (4)窗体布局 QFormLayout (5)分裂器布局 QSplitter,有水平和垂直2个方向 (6)弹簧 Spacer,有水平和垂直2个方向
新版Android开发教程.rar
� 由于是源代码开放的产品,对非主导厂商而言,可以避开与主导厂商在核心技术上面的差距,开发出 更 具竞争力和差异化的产品。 对运营商的影响 � 丰富的数据业务,将导致数据流量的显著增加 。 � 手机来源增加,...
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章