【发布时间】:2014-02-10 21:52:20
【问题描述】:
我有一个CWinAppEx 派生类和一个CFrameWndEx 派生类,但我终生无法理解如何使用键盘加速器。
我有一个带加速器的加速器表:
ID: ID_CLOSE_FOCUSED_WINDOW
Modifier: Ctrl
Key: W
Type: VIRTKEY
我的CFrameWndEx 派生类的消息映射中有这一行:
ON_COMMAND(ID_CLOSE_FOCUSED_WINDOW, CloseLastFocusedWindow)
我尝试在CFrameWndEx 派生类和PreTranslateMessage 调用TranslateAccelerators 中覆盖PreTranslateMessage,但我仍然没有收到与加速器表中的ID 相同的命令 - 没有点击CloseLastFocusedWindow 函数中的断点。
有人能解释一下吗?我觉得我正确地遵循了文档,但它对我不起作用。
提前致谢
【问题讨论】:
-
我认为加速器的资源 ID(例如:
IDR_MAINFRAME)应该与用于加载帧的资源 ID 匹配 -
感谢 Edward,我的资源 ID 与用于加载框架的 ID 匹配。