我正在一个 MFC 应用程序中实现一个右键菜单,其内容直到运行时才知道。
虽然将菜单项添加到CMenu
对象很简单,但我还没有找到一种方法来处理每个菜单项发送的消息。
我正在研究的一种技术是为每个动态创建的菜单项分配相同的资源 ID,并通过一个回调处理所有消息,该回调将包含适当处理每条消息的逻辑。这种方法的问题在于,除了杂乱无章之外,CMenu
menuitem 消息是使用ON_COMMAND
需要无参数回调的宏捕获的,因此除了隐含信息被具有特定资源的资源调用之外,没有任何信息传递给它ID。
我尝试使用ON_MESSAGE
宏来捕获消息,而不是作为它使用接收WPARAM
和LPARAM
参数的回调,但从未调用过回调,因此该选项似乎已失效。
在我看来,必须有一种方法来实现我正在尝试做的事情,但到目前为止我还无法弄清楚。任何帮助深表感谢。