需求:在自己二次开发的对话框环境下,使用特定快捷键,屏蔽自带快捷键,为用户带来方便
步骤如下:
一:在DllExport的class下面,定义成员
//hpp
#include <windows.h>
class DllExport BlockStyler123
{
public:
HHOOK hookKeyboard; //键盘钩子
static BlockStyler123* instanceForHook; //用来操作静态钩子函数
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);
static LRESULT CALLBACK KeyboardProc_proxy(int nCode, WPARAM wParam, LPARAM lParam);
void unloadHookKeyboard(); //卸载钩子
};
二:声明全局变量:
//cpp
BlockStyler123* BlockStyler123::instanceForHook = nullptr;
LRESULT CALLBACK BlockStyler123::KeyboardProc_proxy(int nCode, WPARAM wParam, LPARAM lParam)
{
return instanceForHook->KeyboardProc(nCode, wParam, lParam);
}
.三:在构造函数中,初始化成员变量
//cpp
BlockStyler123::BlockStyler123()
{
instanceForHook = this; // 设置当前实例
hookKeyboard = NULL;
}