对话框管理器第八章:对话框中的自定义导航
有一些对话框会包含一些自定义按键导航,例如,属性表控件(Property Sheet),你可以通过按下 CTRL + TAB 或者 CTRL + SHIFT + TAB 来切换不同的属性页面。如果要实现这样的功能,仅仅靠IsDialogMessage是不够的,你需要自己写点代码才行。
我们先看看之前我们的对话框消息循环的代码实现:
为了添加自定义导航,我们可以在IsDialogMessage调用之前,添加下面蓝色的部分。
代码解析
当收到一条消息时,在分发此消息,甚至在IsDialogMessage之前,我们先检查它是否为 CTRL + TAB 按键,如果是的话,我们将它看做是一个导航快捷键。
请注意,如果希望将这段代码用在非模态对话框上,则你需要注意一个细节,因为我们不希望占用无模式对话框中现有的按键导航。请看下面修改之后的代码:
在后面的文章中,我们将会使用另外一种方法实现相同的功能,敬请期待。
总结
大部分人,都是使用鼠标完成大部分日常任务。
按键键导航这个功能,很少有用户会使用。但是,作为一个完美主义者,这个功能我一定会在TopomelBox中慢慢给加上。可以不用,但不能没有。
鼠标操作平易近人,但是操作效率上来说,还是没有快捷键那样快速高效暴力直接。比如,你经常会使用到的 CTRL + C 和 CTRL + V 这两项技法。
正所谓:天下武功,唯快不破。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《The dialog manager, part 8: Custom navigation in dialog boxes》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
- 下一篇: 使用VSBT构建C和C++开源项目
- 上一篇: 对话框管理器第七章:消息循环中的更多细节
相关推荐
- 实战经验:通过WMI获取硬件序列号
- Posted on 03月31日
- Visual Studio 17.5: 有关 C++ 的新特性预览
- Posted on 01月29日
- 当对象的引用计数为零时
- Posted on 04月19日
- 一则轶事:对更快的系统调用陷阱的追求
- Posted on 01月25日
评论已关闭。