objectarx 实现hook消息的注册和截取

重点:

1.采用acedRegisterFilterWinMsg去注册消息

2.两种 形式

(1)随便声明定义在一个文件中,写成全局函数

//处理消息的内容
BOOL GetMSG(MSG* msg)
{
	if (msg->message == WM_LBUTTONDOWN)
	{
	}
	return FALSE; //False表示让消息继续传递下去,true表示让消息终止,不再传给其他控件
}


void RegMsg()
{
	//采用acedRegisterFilterWinMsg注册消息
	if (!acedRegisterFilterWinMsg(GetMSG))
	{
	}
}

void RemMsg()
{
	//采用acedRemoveFilterWinMsg删除消息
	if (!acedRemoveFilterWinMsg(GetMSG))
	{
	}
}

 然后在每一个dllmain的执行的过程中去初始化

objectarx 实现hook消息的注册和截取_第1张图片

(2)在类中定义一个static函数,然后在dllmian中去注册

class POPBAR_API CommandPopDlg : public CBCGPDialog
{
	DECLARE_DYNAMIC(CommandPopDlg)

public:
	CommandPopDlg(const CString& categoryName, const CString& panelName, CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CommandPopDlg();

	enum {IDD = IDD_POP_DLG};

	//注册一个static消息
	static BOOL DealWithFilterWinMsg(MSG* msg);
}

objectarx 实现hook消息的注册和截取_第2张图片

 objectarx 实现hook消息的注册和截取_第3张图片

 

你可能感兴趣的:(ObjectARX,c++)