📄 subclass.h
字号:
////////////////////////////////////////////////////////////////// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -