问题描述
我使用的是非常老的MFC应用程序,并且GUI的许多回调定义如下,这些回调分布在不同视图/文档的100多个cpp文件中
ON_COMMAND(ID_FILE_OP1,OnFileOp1)
ON_UPDATE_COMMAND_UI(ID_FILE_OP1,OnUpdateFileOp1)
ON_COMMAND(ID_FILE_OP2,OnFileOp2)
ON_UPDATE_COMMAND_UI(ID_FILE_OP2,OnUpdateFileOp2)
一项新要求要求我在每个ON_UPDATE_COMMAND_UI
定义的回调函数调用以及ON_COMMAND
之后和之前调用一个函数。
我正在尝试创建一个#define
,以便将更改本地化并用作回叫开始结束的挂钩机制。
我绝对可以在每次函数调用之前和之后调用我的公共函数,但是我不认为这是一种干净的方法。
什么是标准或好的方法?
我希望从外部干净地连接到ON_COMMAND
和ON_UPDATE_COMMAND_UI
回调函数。
我在Windows,Visual Studio 2015 x64上。
解决方法
您可以通过调用SetWindowsHookEx函数来安装钩子过程。要检索DLL模块的句柄,请使用... wParam,szMsg,c ++调用LoadLibrary函数。 if(FAILED(hResult)){// TODO:编写器错误...