将CHotKeyCtrl中的热键从虚拟代码转换为字符串并向后
问题描述:
我有CHotKeyCtrl
,我可以从中获得虚拟键代码和修饰符。我也可以拨打CHotKeyCtrl::GetHotKeyName
来得到这个热键的字符串视图 - 我可以将这个字符串显示给用户,并将其存储在我的XML配置文件中。但如何将此字符串转换为虚拟键码和修饰符?我不想保存在XML中,只需使用WORD
表单中的虚拟键码和中间键(这不是很有用)。将CHotKeyCtrl中的热键从虚拟代码转换为字符串并向后
答
据我所知,没有开箱即用支持的一个热键名字转换成虚拟键码+改性剂对,主要是因为GetHotKeyName()返回本地化名。该名称来自键盘驱动程序,因Windows安装而异。
由于WM_SETHOTKEY需要一个虚拟键代码及其改性剂,包装成一个WPARAM
,您可以构建值,并将其存储在XML设置,以避免使用两个元素/属性。您还可以包含热键名称以便于阅读,但仅存储该名称不会为您提供发送WM_SETHOTKEY
之后所需的信息。