高手请进,菜单快捷键的响应问题

tongdou12 2010-01-27 07:31:04
在资源视图的Accerlator里设置了菜单相应的快捷键F1、F2……。主界面分为两个视图,左边是树形控件视图,右边是树叶项对应的视图,其中有的有Tab页控件。在没有切换到Tab页控件的视图前,能够正常响应菜单快捷键,一旦切换到有Tab页的视图,快捷键就响应不了。如果点击一下左边树形控件,快捷键又恢复正常。是不是需要控制焦点在树形控件上才能响应快捷键?如果是,应怎么控制焦点?请高手支招。
...全文
108 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tongdou12 2010-01-29
  • 打赏
  • 举报
回复
应该说捕获不到正确的键盘响应。设置断点跟踪,已经进入到这个函数里面,但同样在切换到Tab页视图的时候对快捷键没有响应。是不是还要在这个消息响应函数里添加切换视图的代码?
tongdou12 2010-01-29
  • 打赏
  • 举报
回复
在程序里设置了ON_MESSAGE(WM_SETFOCUS,OnAccessKeyMsg)消息映射函数,在OnAccessKeyMsg()函数里用了pTreeCtrl->SetFocus(),结果还是捕获不到焦点。
xwsn007 2010-01-27
  • 打赏
  • 举报
回复
另一个常用的函数是SetCapture
该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
xwsn007 2010-01-27
  • 打赏
  • 举报
回复
SetFocus函数发送WM_KILLFOCUS消息到失去键盘焦点的窗口,并且发送WM_SETFOCUS消息到接受键盘焦点的窗口。它也激活接受键盘焦点的窗口或接受键盘焦点的窗口的父窗口。
假定pTreeCtrl是你获取的树控件的指针,
pTreeCtrl->SetFocus(); 可使其恢复键盘焦点。
xwsn007 2010-01-27
  • 打赏
  • 举报
回复


SetFocus()可设置空间的键盘接收焦点

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧