www.pudn.com > testeditsrch.zip > MenuInit.h


//////////////////////////////////////////////////////////////// 
// If this code works, it was written by Paul DiLascia. 
// If not, I don't know who wrote it. 
// Compiles with Visual C++ 6.0, runs on Windows 98 and probably NT too. 
// 
#pragma once 
 
#include "Subclass.h" 
 
////////////////// 
// Initialize any menu by routing through any MFC command target. 
// 
class CPopupMenuInit { 
public: 
	static void Init(CCmdTarget* pTarg, 
		CMenu* pMenu, BOOL bAutoMenuEnable=TRUE); 
}; 
 
////////////////// 
// Handles WM_INITMENUPOPUP on behalf of any CWnd object. 
// 
class CPopupMenuInitHandler: public CSubclassWnd { 
public: 
	BOOL m_bAutoMenuEnable;		// disable menu items w/no handler? 
	CPopupMenuInitHandler(); 
	virtual ~CPopupMenuInitHandler(); 
	BOOL Install(CWnd* pWnd)	{ return HookWindow(pWnd); } 
	void Remove()					{ HookWindow((HWND)NULL); } 
protected: 
	virtual void OnMenuInitPopup(CMenu* pMenu, UINT nIndex, BOOL bSysMenu); 
	virtual LRESULT WindowProc(UINT msg, WPARAM wp, LPARAM lp); 
};