subclass.h

来自「3D reconstruction, medical image process」· C头文件 代码 · 共 52 行

H
52
字号
////////////////////////////////////////////////////////////////// RxSubclassWnd Copyright 1996 Microsoft Systems Journal. // If this code works, it was written by Paul DiLascia.// If not, I don't know who wrote it.//#ifndef _MSGHOOK_H#define _MSGHOOK_H//////////////////// Generic class to hook messages on behalf of a CWnd.// Once hooked, all messages go to RxSubclassWnd::WindowProc before going// to the window. Specific subclasses can trap messages and do something.//// To use://// * Derive a class from RxSubclassWnd.//// * Override RxSubclassWnd::WindowProc to handle messages. Make sure you call//   RxSubclassWnd::WindowProc if you don't handle the message, or your window will//   never get messages. If you write seperate message handlers, you can call//   Default() to pass the message to the window.//// * Instantiate your derived class somewhere and call HookWindow(pWnd)//   to hook your window, AFTER it has been created.//	 To unhook before the window is destroyed, call HookWindow(NULL).//class RxSubclassWnd : public CObject {protected:	DECLARE_DYNAMIC(RxSubclassWnd);	CWnd*			m_pWndHooked;		// the window hooked	WNDPROC			m_pOldWndProc;		// ..and original window proc	RxSubclassWnd*	m_pNext;			// next in chain of hooks for this window	// Override this to handle messages in specific handlers	virtual LRESULT WindowProc(UINT msg, WPARAM wp, LPARAM lp);	LRESULT Default();					// call this at the end of handler fnspublic:	RxSubclassWnd();	~RxSubclassWnd();	// Hook a window. Hook(NULL) to unhook (automatic on WM_NCDESTROY)	BOOL	HookWindow(CWnd* pRealWnd);	BOOL	IsHooked()	{ return (m_pWndHooked != NULL); }	friend LRESULT CALLBACK HookWndProc(HWND, UINT, WPARAM, LPARAM);	friend class RxSubclassWndMap;};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?