如何通过键盘定位窗口焦点到菜单栏?请大侠帮忙!100分

zhangjl716 2006-03-11 09:38:50
问题如下:
VC环境开发的MFC程序,没有鼠标,如何实现通过定义某一个特殊键实现对菜单栏0级菜单选择(定位)?
类似快捷键,但要求焦点定位到最上一级菜单,比如通常的File级!



...全文
237 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
TianChong 2006-03-16
  • 打赏
  • 举报
回复
那只能是发送模拟的组合按键给自己窗口,以激活相应菜单了
Snow_Ice11111 2006-03-13
  • 打赏
  • 举报
回复
手机开发?没玩过,不过在电脑上运行的话,实现这个要求是轻松加愉快^_^
Snow_Ice11111 2006-03-13
  • 打赏
  • 举报
回复
在PreTranslateMessage函数中检测到用户按下某键后,如果是特定键的话,就发送模拟的组合按键给自己窗口,以激活相应菜单。另外,没试过,不知道直接设置加速键可否达到这个要求?
zhangjl716 2006-03-12
  • 打赏
  • 举报
回复
谢谢BBirdlyh,我去试一下!

谢谢TianChong,你说的很有道理。不过我这里就是举个例子说明我的问题,其实我要做的东西是有一个自己定义的功能键,该功能键不会定义成别的功能,只用做菜单激活这样的功能的。我的想法是类似手机操作,通过功能键激活菜单功能,然后通过键盘的其他键实现相关的任务,我对手机的功能实现不了解,论坛肯定有不少高人从事手机应用开发,所以来这里咨询大家,希望大家指引迷津。

谢谢大家的关注继续!!



zhangjl716 2006-03-12
  • 打赏
  • 举报
回复
呵呵,QuickGo你说反了吧,怎么会是“不良的UI设计导致奇怪的UI需求”呢?

我不明白!

没有通用的键盘、没有通用的鼠标,这样的UI怎么设计,你能给我好的建议吗?

谢谢!
QuickGo 2006-03-12
  • 打赏
  • 举报
回复
不良的UI设计,可能会导致出现一些比较奇怪的UI需求的出现,你就是个典型的例子。
zhangjl716 2006-03-11
  • 打赏
  • 举报
回复
我希望只通过一个F键实现,而不用ALT+F键。
striking 2006-03-11
  • 打赏
  • 举报
回复
楼上说的没错. 如"文件" 菜单, 菜单编辑的时候, 这样写 "文件(&F)"

这样运行的时候, 就可以用ALT+F定位
cody_wuhui 2006-03-11
  • 打赏
  • 举报
回复
楼上说的正解
TianChong 2006-03-11
  • 打赏
  • 举报
回复
如果只通过一个键是不可以的,实际上是可以的,可是当用户想输入东西的时候总不能不用F键或其它键吧(你的菜单很多项的,要占用很多个字母),那么他怎么输入文字啊?只要一按F键就定位到你的菜单里去了,这样程序就很混乱,要记得写程序有一个重要原则就是:不能违反普遍的操作习惯!例如,大家习惯“文件”菜单在第一位,而你做成了“帮助”在第一位,又如:大家都习惯“回车”表示确认,“ESC”表示取消,你如果写成“回车”为取消,“ESC”为确认,那用户是无所适从的,同理,大家已习惯定位在0级菜单主是要使用ALT+字母的,就包括是DOS下的程序都是这样,可以说这已成为约定俗成,不容更改的,你为什么非要改呢?不行你在DOS下使用EDIT、DISKMAN、BC++,TC...只要你能想到的,都是这样的操作的,说了这么多只是想告诉你:不要违返已成为约定俗成的操作习惯,这是用户所不欢迎的,也是编程的不良习惯.
BBirdlyh 2006-03-11
  • 打赏
  • 举报
回复
键盘钩子,做一个回调,当发现是按下F键时就发一个KEYDOWN消息,消息的虚键码是ALT+F的键码,ALT+F键码可以去MSDN查
ysc918 2006-03-11
  • 打赏
  • 举报
回复
在菜单的名字后(&B),然后按Alt+B就可以。
zhangjl716 2006-03-11
  • 打赏
  • 举报
回复
类似快捷键,比如按下键盘的F键,实现对File栏菜单的选中并反显,在按键盘的上、下、左、右键可以实现其它菜单功能的操作。

15,979

社区成员

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

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