与上篇文章类似,你还可以将自定义快捷键添加到对话框中。 (从某种意义上说,快捷键是自定义导航的一种,因为你可以将导航键实现为快捷键。)
【资料图】
那么,让我们使用快捷键来进行导航,而不是手动选择按键。 我们的快捷键表可能如下所示:
在上面的代码里,你可以看到,我对表格的逗号放置方法。 我喜欢将逗号放在字段的远端,而不是将其与列中的最后一个单词混为一谈。 这样做会使剪切/粘贴变得容易得多,因为你可以剪切一列并将其粘贴到其他地方,而无需处理后面的逗号。
假设你已将此快捷键表加载到变量“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》
责任编辑: