⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fbmenu.h

📁 在VC编程环境下
💻 H
字号:
/*
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
	文件:FBMenu.h

	版权:Firebird Software Workroom 保留

	声明:本源程序的版权受《中华人民共和国著作权法》以及其
		  它相关法律和条约的保护。任何有机会得到本源程序的
		  个人和机构,未经作者明确授权,不得将本源程序用于
		  任何商业目的(直接的或间接的)。对于非商业目的的使
		  用 (包括复制、传播、编译和修改), 原则上没有特别
		  的限制条款,但请在相关文档中说明其来源,并尊重原
		  作者的署名权。

	编写:秦传安(chings)	2000.6

	联络:E_mail:chings@163.net
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
#ifndef _FBMENU_H__
#define _FBMENU_H__

//####################################################################
class CFBMenu
{
public:
	CFBMenu();
	~CFBMenu();

	HMENU	m_hMenu;

	BOOL CreateMenu();
	BOOL CreatePopupMenu();
	BOOL LoadMenu(LPCTSTR lpszResourceName);
	BOOL LoadMenu(UINT nIDResource);
	BOOL DestroyMenu();

	virtual BOOL Attach(HMENU hMenu);

	BOOL DeleteMenu(UINT nPosition, UINT nFlags);
	BOOL TrackPopupMenu(UINT nFlags, int x, int y,
						HWND hWnd, LPCRECT lpRect = 0);

	UINT CheckMenuItem(UINT nIDCheckItem, UINT nCheck);
	UINT EnableMenuItem(UINT nIDEnableItem, UINT nEnable);
	UINT GetMenuItemCount() const;
	UINT GetMenuItemID(int nPos) const;
	UINT GetMenuState(UINT nID, UINT nFlags) const;
	int GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount,
					UINT nFlags) const;
	BOOL GetMenuItemInfo(UINT nIDItem, LPMENUITEMINFO lpMenuItemInfo,
					BOOL fByPos = FALSE);
	HMENU GetSubMenu(int nPos) const;
	BOOL InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0,
					LPCTSTR lpszNewItem = NULL);
	BOOL ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem = 0,
					LPCTSTR lpszNewItem = NULL);
	BOOL RemoveMenu(UINT nPosition, UINT nFlags);
	BOOL CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags);
	BOOL SetDefaultItem(UINT uItem, BOOL fByPos = FALSE);
	UINT GetDefaultItem(UINT gmdiFlags, BOOL fByPos = FALSE);

	virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){}
	virtual void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct){}
};
//####################################################################

inline BOOL CFBMenu::DeleteMenu(UINT nPosition, UINT nFlags){ 
	return ::DeleteMenu(m_hMenu, nPosition, nFlags); }

inline UINT CFBMenu::CheckMenuItem(UINT nIDCheckItem, UINT nCheck){
	return (UINT)::CheckMenuItem(m_hMenu, nIDCheckItem, nCheck); }

inline UINT CFBMenu::EnableMenuItem(UINT nIDEnableItem, UINT nEnable){
	return ::EnableMenuItem(m_hMenu, nIDEnableItem, nEnable); }

inline BOOL CFBMenu::SetDefaultItem(UINT uItem, BOOL fByPos){ 
	return ::SetMenuDefaultItem(m_hMenu, uItem, fByPos); }

inline UINT CFBMenu::GetDefaultItem(UINT gmdiFlags, BOOL fByPos){
	return ::GetMenuDefaultItem(m_hMenu, fByPos, gmdiFlags); }

inline UINT CFBMenu::GetMenuItemCount() const{ 
	return ::GetMenuItemCount(m_hMenu); }

inline UINT CFBMenu::GetMenuItemID(int nPos) const{ 
	return ::GetMenuItemID(m_hMenu, nPos); }

inline UINT CFBMenu::GetMenuState(UINT nID, UINT nFlags) const{ 
	return ::GetMenuState(m_hMenu, nID, nFlags); }

inline int CFBMenu::GetMenuString(UINT nIDItem, LPTSTR lpString, int nMaxCount, UINT nFlags) const{ 
	return ::GetMenuString(m_hMenu, nIDItem, lpString, nMaxCount, nFlags); }

inline BOOL CFBMenu::GetMenuItemInfo(UINT nIDItem, LPMENUITEMINFO lpMenuItemInfo, BOOL fByPos){
	return ::GetMenuItemInfo(m_hMenu, nIDItem, fByPos, lpMenuItemInfo); }

inline HMENU CFBMenu::GetSubMenu(int nPos) const{
	return ::GetSubMenu(m_hMenu, nPos); }

inline BOOL CFBMenu::InsertMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem,
		LPCTSTR lpszNewItem){
	return ::InsertMenu(m_hMenu, nPosition, nFlags, nIDNewItem, lpszNewItem); }

inline BOOL CFBMenu::ModifyMenu(UINT nPosition, UINT nFlags, UINT nIDNewItem, LPCTSTR lpszNewItem){
	return ::ModifyMenu(m_hMenu, nPosition, nFlags, nIDNewItem, lpszNewItem); }

inline BOOL CFBMenu::RemoveMenu(UINT nPosition, UINT nFlags){
	return ::RemoveMenu(m_hMenu, nPosition, nFlags); }

inline BOOL CFBMenu::CheckMenuRadioItem(UINT nIDFirst, UINT nIDLast, UINT nIDItem, UINT nFlags){ 
	return ::CheckMenuRadioItem(m_hMenu, nIDFirst, nIDLast, nIDItem, nFlags); }

inline BOOL CFBMenu::TrackPopupMenu(UINT nFlags, int x, int y,
									HWND hWnd, LPCRECT lpRect){
	return ::TrackPopupMenu(m_hMenu, nFlags, x, y, 0, hWnd, lpRect);}
//####################################################################
/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  class CCoolMenu

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
//###################################################################################
class CCoolMenu : public CFBMenu  
{
public:
	CCoolMenu();
	~CCoolMenu();

	virtual BOOL Attach(HMENU hMenu);

	virtual void DrawItem(LPDRAWITEMSTRUCT pds);
	virtual void MeasureItem(LPMEASUREITEMSTRUCT pmis);

protected:
	HBITMAP		m_hBkBmp1;
	HBITMAP		m_hBkBmp2;
	HFONT		m_hFont;
	int			m_cxFont,m_cyFont;
};
//###################################################################################

#endif//_FBMENU_H__

⌨️ 快捷键说明

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