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

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

?? menuex.h

?? VC開發實用實例
?? H
字號:
//*************************************************************************
// CMenuEx.h : header file
// Version : 2.3
// Date : June 22, 1998
// Author : Brent Corkum
// 
// Portions of code supplied by:
// Ben Ashley,Girish Bharadwaj,Jean-Edouard Lachand-Robert,
// Robert Edward Caldecott,Kenny Goers,Leonardo Zide,
// Stefan Kuhr
//
// Bug Fixes:
// Stefan Kuhr,Martin Vladic,Kim Yoo Chul
//
// You are free to use/modify this code but leave this header intact.
//

//類名:CMenuEx
//功能:使菜單顯示為Office2000風格
//修改人:徐景周(jingzhou_xu@163.net)
//組織:未來工作室(Future Studio)
//日期:2001.12.1
#include <afxtempl.h>

#ifndef CMenuEx_H
#define CMenuEx_H

// CMenuExData class. Fill this class structure to define a single menu item:

#define MF_INVALIDFLAG	0x80000000 
#define MF_DRAWGRAYED	0x40000000
#define MF_LASTARROW	0x20000000
#define MF_USERMASK		0x0000ffff

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

//struct CMenuItemInfo : public MENUITEMINFO {
struct CMenuItemInfo : public 
//MENUITEMINFO 
#ifndef UNICODE   //SK: this fixes warning C4097: typedef-name 'MENUITEMINFO' used as synonym for class-name 'tagMENUITEMINFOA'
tagMENUITEMINFOA
#else
tagMENUITEMINFOW
#endif
    {
	CMenuItemInfo()
	{ memset(this, 0, sizeof(MENUITEMINFO));
	  cbSize = sizeof(MENUITEMINFO);
	}
};




typedef enum {Normal,TextOnly} HIGHLIGHTSTYLE;

#ifndef UNICODE
#define AppendODMenu AppendODMenuA
#define ModifyODMenu ModifyODMenuA
#else
#define AppendODMenu AppendODMenuW
#define ModifyODMenu ModifyODMenuW
#endif



class CMenuEx : public CMenu  // Derived from CMenu
{
	DECLARE_DYNAMIC(CMenuEx);
// Construction
public:
	CMenuEx(BOOL bDrawGrayed=FALSE,BOOL bShowLastArrow=FALSE); 
// Attributes
protected:
	CTypedPtrArray<CPtrArray, CMenuExData*> m_MenuList;  // Stores list of menu items 
// When loading an owner-drawn menu using a Resource, CMenuEx must keep track of
// the popup menu's that it creates. Warning, this list *MUST* be destroyed
// last item first :)

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

	BOOL m_bDrawGrayed;
	BOOL m_bShowLastArrow;
	BOOL m_bDrawOnlyGray;

// Operations
public: 
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCustomMenu)
//}}AFX_VIRTUAL 
// Implementation
public:
	virtual BOOL InsertMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL, UINT nFlagsEx=0xFFFF);
	void*& GetExtraDataPtr(UINT nPos);
	void UpdateGrayedOnly(CMenuEx* pMenu, BOOL b);
	BOOL AppendLastArrow();
	void EnableArrows(BOOL b){m_bEnableArrows=b;}
	BOOL IsEnableArrows(){return m_bEnableArrows;}
	int SetFlagsEx(UINT nPos,int nFlagsEx);
	BOOL CheckIfGrayedDraw(){return m_bDrawGrayed;}
	int FindMenuPos(CMenuEx *pMenu,CMenuEx* &pFather);
	void InsertLastArrows(CMenuEx *pMenu);
	void RemoveLastArrows(CMenuEx* pMenu);
	void EnableGrayedDraw(BOOL bEnable,BOOL bForce=FALSE);
	LRESULT TrapWindowProc(UINT nMsg, WPARAM wParam, LPARAM lParam);
	BOOL ModifyFlagsEx(int nID,int nFlagsEx, BOOL byPos=FALSE);
	virtual BOOL CreatePopupMenu();
	virtual BOOL CreateMenu();
	void DrawLastArrow(CDC* pDC, int x, int y, COLORREF color);
	void PostBuiltMenu(CMenuEx* pMenu);
	int FindMenuPos(CMenuExData* pData,CMenuEx*& pFather);
	BOOL CheckIfGrayed(CMenuEx* pMenu);
	BOOL ModifyODSeparator(UINT nPos,int nFlagsEx);
	int GetFlagsEx(UINT nPos);
	int GetMenuItemID(UINT nPos);
	int GetFlags(UINT nPos);
	virtual BOOL AppendMenu(UINT nFlags, UINT nIDNewItem=0, LPCTSTR lpszNewItem=NULL, UINT nFlagsEx=0);
	CMenuEx* GetSubMenu(UINT iPos);
	UINT GetMenuItemCount(){return (UINT)m_MenuList.GetSize()-1;};
	virtual BOOL DeleteMenu( UINT nPosition, UINT nFlags );
	virtual BOOL PreLoadMenu(LPCTSTR lpszResourceName);
	virtual BOOL PostLoadMenu();
	virtual BOOL PreLoadMenu(int nResource);
  static BOOL IsNewShell(void);
  void SetBitmapBackground(COLORREF color);
  void SetDisableOldStyle(void);
  void UnSetDisableOldStyle(void);
  BOOL GetDisableOldStyle(void);
  void UnSetBitmapBackground(void);
  int AddBitmapToImageList(CImageList *list,UINT nResourceID);
  BOOL LoadFromToolBar(UINT nID,UINT nToolBar,int& xoffset);
  void InsertSpaces(void);
  static LRESULT FindKeyboardShortcut(UINT nChar,UINT nFlags,CMenu *pMenu);
  static void UpdateMenu(CMenu *pmenu);
  BOOL IsMenu(CMenu *submenu);
  void DrawCheckMark(CDC *pDC,int x,int y,COLORREF color);
  void DrawRadioDot(CDC *pDC,int x,int y,COLORREF color);
  CMenuEx *FindMenuOption(int nId,int& nLoc);
  CMenuExData *FindMenuOption(wchar_t *lpstrText);
  BOOL GetMenuText(UINT id,CString &string);
  CImageList *checkmaps;
  BOOL checkmapsshare;
  int m_selectcheck;
  int m_unselectcheck;
  void LoadCheckmarkBitmap(int unselect,int select);
  void DitherBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, 
                 int nHeight, HBITMAP hbm, int nXSrc, int nYSrc);
  void DitherBlt2(CDC *drawdc, int nXDest, int nYDest, int nWidth, 
                  int nHeight, CBitmap &bmp, int nXSrc, int nYSrc);
  HBITMAP LoadSysColorBitmap(int nResourceId);

virtual ~CMenuEx();  // Virtual Destructor 
// Drawing: 
virtual void DrawItem( LPDRAWITEMSTRUCT);  // Draw an item
virtual void MeasureItem( LPMEASUREITEMSTRUCT );  // Measure an item

// Customizing:

void SetIconSize (int, int);  // Set icon size

BOOL AppendODMenuA(LPCSTR lpstrText, UINT nFlags = MF_OWNERDRAW, UINT nID = 0, int nIconNormal = -1, int nFlagsEx=0); // Owner-Drawn Append 

BOOL AppendODMenuW(wchar_t *lpstrText, UINT nFlags = MF_OWNERDRAW, UINT nID = 0, int nIconNormal = -1, int nFlagsEx=0); // Owner-Drawn Append 

BOOL ModifyODMenuA(const char *lpstrText,UINT nID=0,int nIconNormal=-1,int nFlagsEx=-1);
BOOL ModifyODMenuA(const char *lpstrText,const char *OptionText,int nIconNormal,int nFlagsEx=-1);
BOOL ModifyODMenuW(wchar_t *lpstrText,UINT nID=0,int nIconNormal=-1,int nFlagsEx=-1);
BOOL ModifyODMenuW(wchar_t *lpstrText,wchar_t *OptionText,int nIconNormal,int nFlagsEx=-1);
CMenuExData *NewODMenu(UINT pos,UINT nFlags,UINT nID,CString string);
void SynchronizeMenu(void);
void CMenuEx::InitializeMenuList(int value);
void CMenuEx::DeleteMenuList(void);
CMenuExData *CMenuEx::FindMenuList(UINT nID);
virtual BOOL LoadMenu(LPCTSTR lpszResourceName);  // Load a menu
virtual BOOL LoadMenu(int nResource);  // ... 
void AddFromToolBar(CToolBar* pToolBar, int nResourceID);
BOOL Draw3DCheckmark(CDC *dc, const CRect& rc,BOOL bSelected,
                     HBITMAP hbmCheck);
BOOL Draw3DCheckmark2(CDC *dc, const CRect& rc,BOOL bSelected, CBrush* pBrush,
                     HBITMAP hbmCheck);
BOOL LoadToolbar(UINT nToolBar);
BOOL LoadToolbars(const UINT *arID,int n);

// Destoying:

virtual BOOL DestroyMenu();

// Generated message map functions
protected:
int m_iconX,m_iconY;
COLORREF m_bitmapBackground;
BOOL m_bitmapBackgroundFlag;
BOOL disable_old_style;
private:
	BOOL m_bEnableArrows;
	COLORREF m_clrHlt;
	HGLOBAL hGlobal;
}; 

#endif

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区二区不卡| 亚洲激情在线播放| 91美女视频网站| 亚洲国产日韩精品| 久久蜜桃av一区二区天堂| 91在线精品一区二区| 蜜桃av一区二区在线观看| 国产精品色哟哟| 69精品人人人人| 成人免费黄色大片| 裸体歌舞表演一区二区| 一个色综合网站| 日本一区二区久久| 欧美一卡2卡三卡4卡5免费| 色综合久久久久综合体| 狠狠色丁香久久婷婷综合_中 | 国产麻豆精品视频| 午夜精品久久久久久久| 国产精品久久久一本精品| 日韩欧美不卡在线观看视频| 欧美一区二区三区思思人| 91麻豆精品国产91久久久久久 | 国产一区二区三区在线看麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 免费在线观看视频一区| 亚洲免费观看在线视频| 国产欧美日韩在线看| 日韩精品最新网址| 久久综合久久综合久久综合| 91精品蜜臀在线一区尤物| 日韩欧美资源站| 欧美日韩国产天堂| 欧美亚洲尤物久久| 色偷偷久久人人79超碰人人澡 | 欧美乱妇一区二区三区不卡视频| 色综合久久99| 欧美丝袜第三区| 欧美一区二区观看视频| 久久久不卡网国产精品二区| 欧美高清在线精品一区| 亚洲综合偷拍欧美一区色| 综合中文字幕亚洲| 一区精品在线播放| 中文字幕一区二区三中文字幕| 亚洲欧美日韩综合aⅴ视频| 日韩专区在线视频| 日韩av网站在线观看| 午夜亚洲国产au精品一区二区| 麻豆精品一二三| voyeur盗摄精品| 高清在线成人网| 成人自拍视频在线观看| 日本精品视频一区二区| 欧美最新大片在线看| 欧美视频中文字幕| 欧美tk—视频vk| 久久久不卡网国产精品二区 | 日韩—二三区免费观看av| 国产超碰在线一区| 欧美日韩国产高清一区二区三区| 欧美tickling挠脚心丨vk| 亚洲色图19p| 久久电影网电视剧免费观看| 91蜜桃视频在线| 欧美电视剧免费观看| 亚洲蜜桃精久久久久久久| 美女一区二区久久| 91福利小视频| 国产精品视频麻豆| 日精品一区二区三区| eeuss鲁片一区二区三区| 欧美一区二区三区婷婷月色| 日韩毛片视频在线看| 黄页网站大全一区二区| 欧美亚洲一区二区在线| 一本大道久久a久久综合| 天堂在线亚洲视频| 欧美精品一区二区三区在线播放| 欧美亚一区二区| 午夜久久电影网| 午夜一区二区三区视频| 亚洲一区在线观看网站| 国产一区二区三区在线观看免费视频| 欧美中文字幕亚洲一区二区va在线 | 亚洲日本在线看| 狠狠色丁香久久婷婷综| 欧美日韩国产高清一区| 国产精品免费视频一区| 国内精品伊人久久久久av影院 | 久久精品av麻豆的观看方式| 在线日韩av片| 国产精品国产三级国产aⅴ无密码| 久久精品国产99国产精品| 欧美日韩在线三区| 久久影院电视剧免费观看| 天天综合色天天综合| 久久久国产精华| 99久久婷婷国产精品综合| 国产欧美视频在线观看| 精品国产99国产精品| 亚洲高清久久久| 播五月开心婷婷综合| 91福利资源站| 亚洲欧美日韩国产另类专区| 国产91在线看| 国产视频一区在线观看| 亚洲高清免费视频| 欧美一a一片一级一片| 亚洲欧美另类图片小说| 91伊人久久大香线蕉| 最新日韩av在线| 成人av在线资源网| 国产精品福利一区二区| av亚洲产国偷v产偷v自拍| 国产精品日韩成人| hitomi一区二区三区精品| 中文字幕精品在线不卡| 成人av免费在线播放| 国产精品久久久久影视| 99re这里只有精品首页| 亚洲欧洲精品一区二区精品久久久| 大白屁股一区二区视频| 中文字幕在线不卡| 91热门视频在线观看| 亚洲精品大片www| 色狠狠一区二区三区香蕉| 亚洲国产另类av| 久久99久久久久久久久久久| 欧美福利视频一区| 欧美一区二区啪啪| 国产精品九色蝌蚪自拍| av电影在线观看完整版一区二区| 欧美激情一区二区三区在线| 91在线播放网址| 亚洲国产精品麻豆| 日韩丝袜美女视频| 国产精品一二三| 日韩一区二区三区观看| 久久er99精品| 中文字幕一区二区三区四区| 一本大道久久a久久综合| 亚洲小少妇裸体bbw| 欧美一二三四在线| 国产99久久久国产精品免费看| 国产精品白丝在线| 欧美丰满嫩嫩电影| 国产麻豆成人传媒免费观看| 中文字幕一区日韩精品欧美| 欧美日韩国产成人在线免费| 麻豆精品精品国产自在97香蕉| 国产女同互慰高潮91漫画| 色偷偷成人一区二区三区91| 天天亚洲美女在线视频| 久久综合av免费| 91在线视频18| 美女视频第一区二区三区免费观看网站| 久久色视频免费观看| 在线视频国内自拍亚洲视频| 亚洲免费大片在线观看| 怡红院av一区二区三区| 欧美大片国产精品| 高清国产一区二区| 亚洲二区视频在线| 中文字幕不卡在线| 欧美人妇做爰xxxⅹ性高电影| 韩国av一区二区三区| 亚洲一区av在线| 久久九九久精品国产免费直播| 在线免费不卡视频| 国产乱码精品一品二品| 亚洲成在人线免费| 中文字幕精品—区二区四季| 欧美日韩视频不卡| 成人精品国产一区二区4080| 奇米色777欧美一区二区| 亚洲另类在线一区| 国产三级精品三级| 日韩欧美三级在线| 91看片淫黄大片一级在线观看| 麻豆精品在线播放| 亚洲高清视频的网址| 国产精品国产三级国产三级人妇| 日韩色视频在线观看| 欧美做爰猛烈大尺度电影无法无天| 国产大陆a不卡| 国产精品丝袜久久久久久app| 欧美一区二区美女| 日本大香伊一区二区三区| 国产精品综合av一区二区国产馆| 亚洲成人福利片| 亚洲美女视频一区| 日本一区二区在线不卡| 日韩视频在线永久播放| 欧美色图在线观看| 成人高清免费观看| 国产精品综合在线视频| 日本一区中文字幕| 亚洲成人免费视频| 一片黄亚洲嫩模| 亚洲视频在线一区二区|