对话框管理器第九章:对话框中的自定义快捷键
与上篇文章类似,你还可以将自定义快捷键添加到对话框中。 (从某种意义上说,快捷键是自定义导航的一种,因为你可以将导航键实现为快捷键。)
那么,让我们使用快捷键来进行导航,而不是手动选择按键。 我们的快捷键表可能如下所示:
在上面的代码里,你可以看到,我对表格的逗号放置方法。 我喜欢将逗号放在字段的远端,而不是将其与列中的最后一个单词混为一谈。 这样做会使剪切/粘贴变得容易得多,因为你可以剪切一列并将其粘贴到其他地方,而无需处理后面的逗号。
假设你已将此快捷键表加载到变量“hacc”中,现在,你可以在自定义对话框循环中使用该表了:
TranslateAccelerator 函数检查消息是否与快捷键表中的任何条目匹配。 如果是这样,则它将 WM_COMMAND 消息发布到作为其第一个参数传递的窗口。 在我们的例子中,我们传递的是对话框句柄。 上面未显示的是对话框中的 WM_COMMAND 处理程序,它通过执行导航来响应 IDC_NEXTPAGE 和 IDC_PREVPAGE。
与上次一样,如果你认为此消息循环可能拥有无模式对话框,则必须进行过滤,以免误选其他人的快捷键。
至此,关于对话框管理器相关的所有文章已经全部写完了,希望能给你一些启迪。
总结
前面路远且长,加油吧,少年。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《The dialog manager, part 9: Custom accelerators in dialog boxes》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
- 下一篇: 使用数学的力量来简化多级比较
- 上一篇: 使用VSBT构建C和C++开源项目
相关推荐
- 如何在一个全屏窗口中覆盖状态栏?
- Posted on 10月14日
- 关于x86平台上内存对齐的重要性
- Posted on 09月24日
- 是不是有点硬核了: 修改Windows启动Logo
- Posted on 12月09日
- 新玩意:使用vcpkg来管理你的C++代码库
- Posted on 08月03日
评论已关闭。