我想在使用C ++运行时为没有加速键的菜单项分配加速键,并且能够更改它。我查看了文档和MSDN,我不清楚如何做到这一点。
答案 0 :(得分:2)
您需要管理自己的加速器表。
您可以从ACCEL结构数组创建资源表,填充并传递给CreateAcceleratorTable。或者您可以通过LoadAccelerators从资源加载它们。这为您提供了一个HACCEL句柄。在主消息循环中,在TranslateAccelerator调用中使用此HACCEL句柄。
当编辑加速器时,如果您不再使用ACCEL阵列,请使用HACCEL句柄调用CopyAcceleratorTable以获取ACCEL阵列。根据需要编辑此数组,然后使用CreateAcceleratorTable重新创建一个新的HACCEL句柄并删除旧的。将此新手柄用于加速器,直到下一次更改。
您的WndProc将获取这些加速器的消息。在消息处理程序中调用菜单操作处理程序的实现。