亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? officexpmenu.h

?? 用vc++6.0制作
?? H
字號:
#ifndef COfficeXPMenu_H
#define COfficeXPMenu_H

#include <afxtempl.h>

class COfficeXPMenuData
{
	wchar_t *m_szMenuText;
public:
	COfficeXPMenuData () {menuIconNormal=-1;xoffset=-1;bitmap=NULL;pContext=NULL;
	nFlags=0;nID=0;syncflag=0;m_szMenuText=NULL;};
	void SetAnsiString(LPCSTR szAnsiString);
	void SetWideString(const wchar_t *szWideString);
	const wchar_t *GetWideString(void) {return m_szMenuText;};
	~COfficeXPMenuData ();
	CString GetString(void);//returns the menu text in ANSI or UNICODE
	int xoffset;
	int menuIconNormal;
	UINT nFlags,nID,syncflag;
	CImageList *bitmap;
	void *pContext; // used to attach user data
};

struct COfficeXPMenuInfo : public 
								#ifndef UNICODE 
								tagMENUITEMINFOA
								#else
								tagMENUITEMINFOW
								#endif
{
	COfficeXPMenuInfo()
	{
		memset(this, 0, sizeof(MENUITEMINFO));
		cbSize = sizeof(MENUITEMINFO);
	}
};

typedef enum 
{
	TYPE_NORMAL,
	TYPE_XP
} BC_MenuDrawMode;

typedef enum 
{
	COfficeXPMenu_NONE,
	COfficeXPMenu_HEAD, 
	COfficeXPMenu_TAIL,
	COfficeXPMenu_BOTH
} BC_Seperator;

#ifndef UNICODE
#define AppendMenu AppendMenuA
#define InsertMenu InsertMenuA
#define InsertODMenu InsertODMenuA
#define AppendODMenu AppendODMenuA
#define AppendODPopupMenu AppendODPopupMenuA
#define ModifyODMenu ModifyODMenuA
#else
#define AppendMenu AppendMenuW
#define InsertMenu InsertMenuW
#define InsertODMenu InsertODMenuW
#define AppendODMenu AppendODMenuW
#define ModifyODMenu ModifyODMenuW
#define AppendODPopupMenu AppendODPopupMenuW
#endif


class COfficeXPMenu : public CMenu
{

public:
	COfficeXPMenu(); 
	virtual ~COfficeXPMenu();

	virtual BOOL LoadMenu(LPCTSTR lpszResourceName);
	virtual BOOL LoadMenu(int nResource);
	BOOL LoadToolbar(UINT nToolBar);
	BOOL LoadToolbars(const UINT *arID,int n);
	void AddFromToolBar(CToolBar* pToolBar, int nResourceID);
	BOOL LoadFromToolBar(UINT nID,UINT nToolBar,int& xoffset);
	BOOL AddBitmapToImageList(CImageList *list,UINT nResourceID);
	static HBITMAP LoadSysColorBitmap(int nResourceId);
	void LoadCheckmarkBitmap(int unselect,int select); // custom check mark bitmaps
	
	BOOL AppendMenuA(UINT nFlags,UINT nIDNewItem=0,const char *lpszNewItem=NULL,int nIconNormal=-1);
	BOOL AppendMenuA(UINT nFlags,UINT nIDNewItem,const char *lpszNewItem,CImageList *il,int xoffset);
	BOOL AppendMenuA(UINT nFlags,UINT nIDNewItem,const char *lpszNewItem,CBitmap *bmp);
	BOOL AppendMenuW(UINT nFlags,UINT nIDNewItem=0,wchar_t *lpszNewItem=NULL,int nIconNormal=-1);
	BOOL AppendMenuW(UINT nFlags,UINT nIDNewItem,wchar_t *lpszNewItem,CImageList *il,int xoffset);
	BOOL AppendMenuW(UINT nFlags,UINT nIDNewItem,wchar_t *lpszNewItem,CBitmap *bmp);
	BOOL AppendODMenuA(LPCSTR lpstrText,UINT nFlags = MF_OWNERDRAW,UINT nID = 0,int nIconNormal = -1);  
	BOOL AppendODMenuW(wchar_t *lpstrText,UINT nFlags = MF_OWNERDRAW,UINT nID = 0,int nIconNormal = -1);  
	BOOL AppendODMenuA(LPCSTR lpstrText,UINT nFlags,UINT nID,CImageList *il,int xoffset);
	BOOL AppendODMenuW(wchar_t *lpstrText,UINT nFlags,UINT nID,CImageList *il,int xoffset);
	
	COfficeXPMenu* AppendODPopupMenuA(LPCSTR lpstrText);
	COfficeXPMenu* AppendODPopupMenuW(wchar_t *lpstrText);

	BOOL InsertMenuA(UINT nPosition,UINT nFlags,UINT nIDNewItem=0,const char *lpszNewItem=NULL,int nIconNormal=-1);
	BOOL InsertMenuA(UINT nPosition,UINT nFlags,UINT nIDNewItem,const char *lpszNewItem,CImageList *il,int xoffset);
	BOOL InsertMenuA(UINT nPosition,UINT nFlags,UINT nIDNewItem,const char *lpszNewItem,CBitmap *bmp);
	BOOL InsertMenuW(UINT nPosition,UINT nFlags,UINT nIDNewItem=0,wchar_t *lpszNewItem=NULL,int nIconNormal=-1);
	BOOL InsertMenuW(UINT nPosition,UINT nFlags,UINT nIDNewItem,wchar_t *lpszNewItem,CImageList *il,int xoffset);
	BOOL InsertMenuW(UINT nPosition,UINT nFlags,UINT nIDNewItem,wchar_t *lpszNewItem,CBitmap *bmp);
	BOOL InsertODMenuA(UINT nPosition,LPCSTR lpstrText,UINT nFlags = MF_OWNERDRAW,UINT nID = 0,int nIconNormal = -1); 
	BOOL InsertODMenuW(UINT nPosition,wchar_t *lpstrText,UINT nFlags = MF_OWNERDRAW,UINT nID = 0,int nIconNormal = -1);  
	BOOL InsertODMenuA(UINT nPosition,LPCSTR lpstrText,UINT nFlags,UINT nID,CImageList *il,int xoffset);
	BOOL InsertODMenuW(UINT nPosition,wchar_t *lpstrText,UINT nFlags,UINT nID,CImageList *il,int xoffset);
	
	BOOL ModifyODMenuA(const char *lpstrText,UINT nID=0,int nIconNormal=-1);
	BOOL ModifyODMenuA(const char *lpstrText,UINT nID,CImageList *il,int xoffset);
	BOOL ModifyODMenuA(const char *lpstrText,UINT nID,CBitmap *bmp);
	BOOL ModifyODMenuA(const char *lpstrText,const char *OptionText,int nIconNormal);
	BOOL ModifyODMenuW(wchar_t *lpstrText,UINT nID=0,int nIconNormal=-1);
	BOOL ModifyODMenuW(wchar_t *lpstrText,UINT nID,CImageList *il,int xoffset);
	BOOL ModifyODMenuW(wchar_t *lpstrText,UINT nID,CBitmap *bmp);
	BOOL ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,int nIconNormal);

	BOOL ModifyODMenuA(const char *lpstrText,UINT nID,COLORREF fill,COLORREF border,int hatchstyle=-1);
	BOOL ModifyODMenuW(wchar_t *lpstrText,UINT nID,COLORREF fill,COLORREF border,int hatchstyle=-1);
	

	BOOL	RemoveMenu(UINT uiId,UINT nFlags);
	BOOL	DeleteMenu(UINT uiId,UINT nFlags);

	int RemoveMenu(char* pText, BC_Seperator sPos=COfficeXPMenu_NONE);
	int RemoveMenu(wchar_t* pText, BC_Seperator sPos=COfficeXPMenu_NONE);
	

	virtual BOOL DestroyMenu();


	BOOL GetMenuText(UINT id,CString &string,UINT nFlags = MF_BYPOSITION);
	BOOL SetMenuText(UINT id,CString string, UINT nFlags = MF_BYPOSITION);

	CMenu* GetSubMenu (LPCTSTR lpszSubMenuName);
	CMenu* GetSubMenu (int nPos);
	int GetMenuPosition(char* pText);
	int GetMenuPosition(wchar_t* pText);


	virtual void DrawItem( LPDRAWITEMSTRUCT);  // Draw an item
	virtual void MeasureItem( LPMEASUREITEMSTRUCT );  // Measure an item

	static void UpdateMenu(CMenu *pmenu);
	static BOOL IsMenu(CMenu *submenu);
	static BOOL IsMenu(HMENU submenu);
	static LRESULT FindKeyboardShortcut(UINT nChar,UINT nFlags,CMenu *pMenu);


	static void SetType(UINT mode){
		COfficeXPMenu::original_drawmode=mode;
		COfficeXPMenu::xp_drawmode=mode;
	};

	static void SetSelectDisableMode(BOOL mode)
	{
		COfficeXPMenu::original_select_disabled=mode;
		COfficeXPMenu::xp_select_disabled=mode;
	};
	static int COfficeXPMenu::GetMenuDrawMode(void);


	void SetIconSize (int, int); 

	void SetBitmapBackground(COLORREF color);
	void UnSetBitmapBackground(void);

	BOOL GetDisableOldStyle(void);
	void SetDisableOldStyle(void);
	void UnSetDisableOldStyle(void);


protected:
	static BOOL IsNewShell(void);
	COfficeXPMenuData *COfficeXPMenu::FindMenuItem(UINT nID);
	COfficeXPMenu *FindMenuOption(int nId,int& nLoc);
	COfficeXPMenu *FindAnotherMenuOption(int nId,int& nLoc,CArray<COfficeXPMenu*,COfficeXPMenu*>&bcsubs,
								  CArray<int,int&>&bclocs);
	COfficeXPMenuData *FindMenuOption(wchar_t *lpstrText);
	void InsertSpaces(void);
	void DrawCheckMark(CDC *pDC,int x,int y,COLORREF color);
	void DrawRadioDot(CDC *pDC,int x,int y,COLORREF color);
	COfficeXPMenuData *NewODMenu(UINT pos,UINT nFlags,UINT nID,CString string);
	void SynchronizeMenu(void);
	void COfficeXPMenu::InitializeMenuList(int value);
	void COfficeXPMenu::DeleteMenuList(void);
	COfficeXPMenuData *COfficeXPMenu::FindMenuList(UINT nID);
	void DrawItem_Win9xNT2000 (LPDRAWITEMSTRUCT lpDIS);
	void DrawItem_WinXP (LPDRAWITEMSTRUCT lpDIS);
	BOOL Draw3DCheckmark(CDC *dc, const CRect& rc,BOOL bSelected,HBITMAP hbmCheck);
	BOOL DrawXPCheckmark(CDC *dc, const CRect& rc, HBITMAP hbmCheck,COLORREF &colorout);
	void DitherBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, 
		int nHeight, HBITMAP hbm, int nXSrc, int nYSrc,COLORREF bgcolor);
	void DitherBlt2(CDC *drawdc, int nXDest, int nYDest, int nWidth, 
		int nHeight, CBitmap &bmp, int nXSrc, int nYSrc,COLORREF bgcolor);
	BOOL GetBitmapFromImageList(CDC* pDC,CImageList *imglist,int nIndex,CBitmap &bmp);
	BOOL ImageListDuplicate(CImageList *il,int xoffset,CImageList *newlist);
	static COLORREF LightenColor(COLORREF col,double factor);
	static WORD NumBitmapColors(LPBITMAPINFOHEADER lpBitmap);
	void ColorBitmap(CDC* pDC, CBitmap& bmp,CSize size,COLORREF fill,COLORREF border,int hatchstyle=-1);
	

protected:
	CTypedPtrArray<CPtrArray, COfficeXPMenuData*> m_MenuList;  // Stores list of menu items 

	CTypedPtrArray<CPtrArray, HMENU>  m_SubMenus;  // Stores list of sub-menus 

	static CTypedPtrArray<CPtrArray, HMENU>  m_AllSubMenus;
	int m_iconX,m_iconY;
	COLORREF m_bitmapBackground;
	BOOL m_bitmapBackgroundFlag;
	BOOL disable_old_style;
	static UINT original_drawmode,xp_drawmode;
	static BOOL xp_select_disabled,original_select_disabled;
	CImageList *checkmaps;
	BOOL checkmapsshare;
	int m_selectcheck;
	int m_unselectcheck;
	BOOL m_bDynIcons;
}; 

#define COfficeXPMenu_USE_MEMDC

#ifdef COfficeXPMenu_USE_MEMDC



class COfficeXPMenuMemDC : public CDC
{
public:


    COfficeXPMenuMemDC(CDC* pDC,LPCRECT lpSrcRect) : CDC()
    {
        ASSERT(pDC != NULL);

		m_rect.CopyRect(lpSrcRect);
        m_pDC = pDC;
        m_pOldBitmap = NULL;
        m_bMemDC = !pDC->IsPrinting();
              
        if (m_bMemDC)    // Create a Memory DC
        {
            CreateCompatibleDC(pDC);
            m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height());
            m_pOldBitmap = SelectObject(&m_bitmap);
            SetWindowOrg(m_rect.left, m_rect.top);
        }
        else        // Make a copy of the relevent parts of the current DC for printing
        {
            m_bPrinting = pDC->m_bPrinting;
            m_hDC       = pDC->m_hDC;
            m_hAttribDC = pDC->m_hAttribDC;
        }
    }
    

    ~COfficeXPMenuMemDC()
    {
        if (m_bMemDC) 
        {    

            m_pDC->BitBlt(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height(),
                          this, m_rect.left, m_rect.top, SRCCOPY);


            SelectObject(m_pOldBitmap);
        } else {

            m_hDC = m_hAttribDC = NULL;
        }
    }


    COfficeXPMenuMemDC* operator->() {return this;}
        

    operator COfficeXPMenuMemDC*() {return this;}

private:
    CBitmap  m_bitmap;      // Offscreen bitmap
    CBitmap* m_pOldBitmap;  // bitmap originally found in COfficeXPMenuMemDC
    CDC*     m_pDC;         // Saves CDC passed in constructor
    CRect    m_rect;        // Rectangle of drawing area.
    BOOL     m_bMemDC;      // TRUE if CDC really is a Memory DC.
};

#endif

#endif

//*************************************************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久福利网站| 亚洲欧美怡红院| 国产精品国产自产拍在线| 亚洲欧美日韩综合aⅴ视频| 日韩精品乱码av一区二区| 国产凹凸在线观看一区二区| 欧美男生操女生| 国产精品欧美一级免费| 麻豆精品久久精品色综合| 99久久免费国产| 国产亚洲福利社区一区| 青娱乐精品在线视频| 91小视频在线| 国产精品久久久久久久第一福利| 蜜桃视频一区二区| 欧美日韩国产色站一区二区三区| **网站欧美大片在线观看| 国产原创一区二区三区| 日韩视频123| 亚洲综合男人的天堂| 成人免费毛片a| 久久精子c满五个校花| 免费在线成人网| 在线观看免费视频综合| 亚洲日本中文字幕区| 国产不卡在线视频| 中文字幕av资源一区| 成人国产精品免费网站| 精品成人佐山爱一区二区| 婷婷开心激情综合| 欧美裸体bbwbbwbbw| 亚洲图片欧美视频| 欧美午夜寂寞影院| 一级中文字幕一区二区| 91网上在线视频| 亚洲欧美一区二区久久 | 久久综合丝袜日本网| 日韩经典中文字幕一区| 制服丝袜av成人在线看| 日本 国产 欧美色综合| 日韩一区二区视频在线观看| 男女激情视频一区| 精品国产髙清在线看国产毛片| 奇米一区二区三区| 精品少妇一区二区三区日产乱码 | 亚洲一线二线三线视频| 色爱区综合激月婷婷| 亚洲午夜久久久久久久久电影院 | 日韩欧美国产综合在线一区二区三区| 视频一区视频二区中文| 91精品国产综合久久久蜜臀粉嫩| 日韩av一级片| 精品粉嫩超白一线天av| 成人手机在线视频| 亚洲乱码精品一二三四区日韩在线| 色哟哟在线观看一区二区三区| 亚洲猫色日本管| 欧美日韩久久久久久| 蜜桃av一区二区| 久久精品视频网| 色成年激情久久综合| 天堂一区二区在线| 久久久久久久综合日本| 91在线一区二区| 秋霞电影一区二区| 中文字幕在线观看不卡| 欧美日韩专区在线| 韩国精品免费视频| 一区二区三区在线影院| 91精品国产综合久久香蕉麻豆| 国产精品一区一区| 亚洲自拍偷拍九九九| 久久综合一区二区| 欧美亚洲一区二区在线| 激情久久久久久久久久久久久久久久| 国产精品久久久久久久午夜片| 在线日韩av片| 国产成人福利片| 天天综合网天天综合色| 日本一区二区免费在线| 欧美军同video69gay| 国产成人精品三级| 日韩电影在线一区二区| 国产精品人人做人人爽人人添| 8x福利精品第一导航| 菠萝蜜视频在线观看一区| 日本欧美在线观看| 一区二区视频在线| 久久美女高清视频| 88在线观看91蜜桃国自产| 成人av在线资源| 久久成人免费电影| 亚洲六月丁香色婷婷综合久久 | 国产精品欧美经典| 日韩精品一区在线| 欧美日韩亚洲不卡| fc2成人免费人成在线观看播放 | 久久99国产乱子伦精品免费| 日韩理论在线观看| 国产亚洲福利社区一区| 精品久久久久久久久久久久久久久久久 | 国产精品进线69影院| 日韩一二三区视频| 欧美国产欧美综合| 东方aⅴ免费观看久久av| 免费国产亚洲视频| 天天色综合天天| 亚洲一区二区三区爽爽爽爽爽| 亚洲国产精品黑人久久久| 欧美mv和日韩mv国产网站| 8x8x8国产精品| 91精品国产品国语在线不卡| 欧美一区二区三区影视| 国产精品久久久久久久蜜臀| 国产精品久线在线观看| 日本一区二区高清| 国产女主播在线一区二区| 久久青草国产手机看片福利盒子| 欧美一区二区福利在线| 欧美一区二区三区在线| 久久99日本精品| 精品一区二区三区久久久| 美女视频黄a大片欧美| 日本欧美韩国一区三区| 亚洲成人黄色小说| 天天综合天天综合色| 日韩精品电影在线观看| 强制捆绑调教一区二区| 另类小说综合欧美亚洲| 国产在线一区观看| 国内精品第一页| 高清久久久久久| a美女胸又www黄视频久久| 国产91富婆露脸刺激对白| 成人精品gif动图一区| 色哟哟国产精品免费观看| 欧美午夜理伦三级在线观看| 91麻豆精品91久久久久久清纯| 日韩精品一区二区三区视频播放| 精品国产一二三| 国产精品毛片大码女人| 亚洲黄色小视频| 日日夜夜免费精品| 国产精品一级黄| 日本韩国欧美一区| 91精品国产一区二区三区| 国产精品99精品久久免费| 91蜜桃传媒精品久久久一区二区| 91影视在线播放| 91精品国产品国语在线不卡| 久久精品欧美一区二区三区不卡| 最新国产成人在线观看| 亚洲成人资源在线| 国产一区二区在线影院| 91亚洲国产成人精品一区二区三 | 日韩黄色小视频| 国产在线视频一区二区三区| 波波电影院一区二区三区| 欧美亚洲综合久久| 久久精品亚洲精品国产欧美| 亚洲一级不卡视频| 国产伦精品一区二区三区视频青涩| av不卡在线观看| 成人综合婷婷国产精品久久蜜臀 | 日韩在线a电影| 成人免费在线播放视频| 日韩电影免费一区| av午夜精品一区二区三区| 日韩情涩欧美日韩视频| 亚洲乱码中文字幕| 国产成人自拍网| 欧美一区二区性放荡片| 亚洲人成网站影音先锋播放| 麻豆精品精品国产自在97香蕉| 91美女片黄在线| 亚洲人吸女人奶水| 美女视频第一区二区三区免费观看网站 | 欧美国产精品中文字幕| 日韩—二三区免费观看av| 91亚洲男人天堂| 国产精品视频观看| 久久精品国产99国产| 欧美日韩一区二区三区免费看| 欧美激情中文字幕一区二区| 美女任你摸久久| 欧美久久一二三四区| 亚洲精品乱码久久久久久黑人| 国产福利一区二区| 精品欧美黑人一区二区三区| 爽好久久久欧美精品| 在线观看国产精品网站| 国产精品超碰97尤物18| 国产精品亚洲午夜一区二区三区| 久草这里只有精品视频| 在线播放国产精品二区一二区四区| 一区二区三区国产豹纹内裤在线| 99精品视频在线播放观看| 国产精品少妇自拍| 99九九99九九九视频精品| 精品国精品自拍自在线|