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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cbmpmenu.h

?? 一個功能挺多的
?? H
字號:
//********************************************************
//
//Modify by 徐景周 2000.10
//功能:條狀位圖或漸變色菜單顯示效果
//
//***************************************************************************************

#if !defined(AFX_CBMPMENU_H__53F51970_5150_11D3_AB49_0004AC25CC15__INCLUDED_)
#define AFX_CBMPMENU_H__53F51970_5150_11D3_AB49_0004AC25CC15__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//Internal user defined messages
#define WM_LBUTTONDOWNAFTER		WM_USER + 101
#define WM_RESETDATA			WM_USER + 102
#define WM_POPUPSUBMENU			WM_USER + 103

//Global contants
#define MENU_SELECTFIRSTITEM	0x0100
#define OBM_CHECK				32760			//OEM bitmap id for checkmark...taken from winuser.h

//***************************************************************************************
// The CBmpMenu class provides a way to create popup menus with vertical bitmap
//(like windows start bitmap). Also an user can show a child controls by the
//side of menu items. CBmpMenu window provides a placeholder window for child controls.
//The menu behavior is implemented using a toolbar window, of type MenuToolBar class. 
//
//In order to use CBmpMenu class, user needs to use the functions implemented by CMenu for 
//showing a popup menu. All the Microsoft documentation for popup menus applies to CBmpMenu class.
//Only the deviations from that documentation are described below:-
//
// 1) An additional constructor has been implemented to pass on the vertical
//		bitmap handle, bitmap width etc.
//
//     CBmpMenu(int nBitmapW=0, BOOL bShowBmp4SubMenu=FALSE, HBITMAP hBitmap=0, BOOL bStretchBmp=TRUE);
//	   nBitmapW = Width of the blank space to be shown to the left side of menu items in a popup menu.
//	   bShowBmp4SubMenu = If TRUE, then blank space is shown for all submenus of a popup menu
//						  If FALSE, then blank space is shown only for main menu.
//	   hBitmap = If a valid handle is passed then this bitmap is drawn on the blank space
//	   bStretchBmp = If TRUE, then bitmap is drawn using StretchBlt.
//					 If False, then the blank space is filled with pattern brush created from the bitmap
//		
// 2) The parameters passed in the message WM_ENTERMENULOOP, to the owner window of the 
//    menu has been changed.
//
//	  WM_ENTERMENULOOP:
//    wParam = (HMENU)hMenu;  //handle of menu which is entering the modal loop
//    lParam = (HEND)hWindow; //handle of menu window(menu window is of type CBmpMenu)
//
//	  Remarks:
//    If user wants to show a child control e.g. slider control to the left side of the control,
//	  then he needs to handle WM_ENTERMENULOOP in the owner window of the menu. Create child
//	  control with hWindow as parent and place them in the menu window using MoveWindow. User should
//	  take care that control is placed only in the blank space. Otherwise, it may not draw properly.
//
//***************************************************************************************

/////////////////////////////////////////////////////////////////////////////
// MenuToolBar window

class MenuToolBar : public CToolBar
{
private:		
	int		m_nSelectedItem;		//Index of the hot item
	int		m_nLastLBDownIndex;		//Index of the button for which left mouse click event was last processed
	CFont	m_oMenuFont;			//Stores the menu font
	CPoint	m_oHoverPt;				//Stores the last point in the client area of toolbar window, for which WM_MOSEHOVER was created
	int		m_nLastHoverIndex;		//Index of the button for which WM_MOUSEHOVE message was last created

// Construction
public:
	MenuToolBar();					//default constructor

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(MenuToolBar)
	protected:
	virtual void OnCustomDrawNotify(LPARAM lParam, LRESULT* pResult );	//NM_CUSTOMDRAW handler
	virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
	virtual void OnMouseMove(UINT nFlags, CPoint point);
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~MenuToolBar();

	// Generated message map functions
protected:
	//{{AFX_MSG(MenuToolBar)
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) ;
	afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
	//}}AFX_MSG
	
	void	OnPostLbuttonMsg(UINT nFlags, LPARAM point);			//Called from OnLbuttonDown using PostMessage
	BOOL	KeyboardFilter(UINT nChar, UINT nRepCnt, UINT nFlags) ; //Helper function used by OnKeyDown
	BOOL	Draw3DCheckmark(CDC& dc, const CRect rc, BOOL bSelected, HBITMAP hbmCheck,
				BOOL bDrawSunkenBdr, BOOL bGrayImage);				//Helper function used by OnCustomDrawNotify
																	//to draw image in checked menu item

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////
// CBmpMenu window

class CBmpMenu : public CWnd, public CMenu
{
	DECLARE_DYNAMIC(CBmpMenu);

// Construction
public:
	//Constructor
	CBmpMenu(int nBitmapW=0, BOOL bShowBmp4SubMenu=FALSE, HBITMAP hBitmap=0, BOOL bStretchBmp=TRUE);

	//CMenu overridables
	BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, CRect* pMenuItemRect=NULL);
	void operator delete( void* p ){ delete(p);};

// Attributes
public:
	CWnd*		m_pOwnerWnd;	//pointer to owner window

// Operations
public:
     //漸變色長條設(shè)置顯示文字和漸變色
	void SetTitle(CString &strTitle) { m_strTitle = strTitle; };
	CString &GetTitle() { return m_strTitle; };
	void SetGradientColors(COLORREF rgb1, COLORREF rgb2, COLORREF rgbText) { m_Color1 = rgb1; m_Color2 = rgb2; m_ColorText = rgbText; };

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CBmpMenu)
	public:
	virtual BOOL DestroyWindow();
	protected:
	virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	//}}AFX_VIRTUAL

public:
// Implementation
	virtual ~CBmpMenu();
	BOOL	Attach( HMENU hMenu );
	HMENU	Detach();

	void	DestroyRootMenu();		//Destroys all the menu windows starting from root menu window
	void	DestroySubMenus();		//Destroys all submenu windows of this menu window

	// Generated message map functions
protected:

	void	InitToolBarData(CToolBar* pToolBar, CPoint pt, CRect* pRect); //Used to initialize toolbar and for menu window placement
	void	Cleanup();				//deletes allocated memory 

	//{{AFX_MSG(CBmpMenu)
	afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	afx_msg void OnPaint();
	//}}AFX_MSG

	void PopupSubMenu(WPARAM wp, BOOL bSelectFirstItem);	
			//pops up submenu at point CPoint(LOWORD(wp), HIWORD(wp)).
			//If bSelectFirstItem is TRUE then the first item in the submenu is shown as a hot item.												

	DECLARE_MESSAGE_MAP()

private:

	void PositionMenuWindow(CPoint pt, CRect* pItemRect, CRect rect);		//Main menu window placement procedure
	BOOL PositionSubMenu(CPoint pt, CRect menuRect, BOOL bRtAlign, BOOL bDnAlign); //submenu window placement procedure
	void PaintGradiantRect(CDC *pDC, const RECT &rect,COLORREF clrFrom, COLORREF clrTo =RGB(255,255,255), BOOL hori = true, BOOL ascend = true);


	CBmpMenu*		m_pSubMenuWnd;	//pointer to submenu window
	HBITMAP			m_hBitmap;		//handle of vertical bitmap
	BOOL			m_bShowBmpAll;	//Flag which indicates whether leave a vertical blank space for all submenus or not
	BOOL			m_bStretchBmp;  //Flag indicating whether to use StretchBlt or PatBlt for filling up blank space
	int				m_nTBOffSet;    //Width of blank space to be shown to left side of menu items
	BOOL			m_bSubMenu;		//Flag indicating whether this menu is a submenu or not
	MenuToolBar*	m_pToolbar;		//pointer to the toolbar window
    CString			m_strTitle; //漸變色條狀上顯示字符
	COLORREF		m_Color1;  //漸變色條漸變顏色和其上顯示字符顏色
	COLORREF		m_Color2;
	COLORREF		m_ColorText;
};

/////////////////////////////////////////////////////////////////////////////
HBITMAP GetSysColorBitmap(HDC hDC, HBITMAP hSourceBitmap, BOOL bMono, BOOL bSelected);
		//returns a bitmap with changed background colours of the image passed in hSourceBitmap

/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_CBMPMENU_H__53F51970_5150_11D3_AB49_0004AC25CC15__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线不卡一区二区| 激情综合色综合久久综合| 亚洲第一成人在线| 日日摸夜夜添夜夜添精品视频| 丝袜a∨在线一区二区三区不卡| 久久成人麻豆午夜电影| 国产成人av电影| 91浏览器打开| 日韩一级黄色片| 国产女主播一区| 亚洲一区二区中文在线| 日av在线不卡| 高清av一区二区| 欧美日韩一区成人| 久久婷婷久久一区二区三区| 亚洲欧美日韩国产手机在线| 日韩不卡一二三区| 成人手机在线视频| 91精品国产免费| 国产精品污www在线观看| 亚洲一卡二卡三卡四卡| 国产精品一二三| 欧美性色综合网| 久久免费视频色| 亚洲一区在线观看视频| 大陆成人av片| 日韩精品一区二区三区中文精品| 日韩码欧中文字| 国产伦精品一区二区三区免费迷 | 精品福利在线导航| 亚洲人成小说网站色在线| 久久福利视频一区二区| 欧美调教femdomvk| 国产精品久久久久国产精品日日| 久久国内精品视频| 欧洲色大大久久| 亚洲国产精品欧美一二99| 国产乱子轮精品视频| 欧美日韩精品欧美日韩精品一| 国产精品妹子av| 久久国产婷婷国产香蕉| 欧美日韩一区二区三区视频| 国产精品久久久久久一区二区三区 | 理论片日本一区| 91福利小视频| 国产精品美女久久久久av爽李琼| 精品一区二区三区在线观看国产| 在线观看国产日韩| 亚洲美女在线一区| 成人手机电影网| 欧美xxxxxxxx| 久久精品国产999大香线蕉| 欧美色倩网站大全免费| 亚洲精品乱码久久久久久久久| 国产乱人伦偷精品视频不卡| 日韩一区二区在线看片| 亚洲高清免费一级二级三级| 91一区二区在线| 国产精品另类一区| 国产河南妇女毛片精品久久久| 精品免费一区二区三区| 青娱乐精品视频| 4438x亚洲最大成人网| 亚洲主播在线播放| 欧美亚洲免费在线一区| 亚洲综合一区二区三区| 色婷婷精品久久二区二区蜜臀av| 中文字幕欧美一| 成年人网站91| 亚洲国产精品传媒在线观看| 国产精品白丝av| 久久亚洲精品小早川怜子| 久久99国产精品久久99果冻传媒| 欧美一区二区三区的| 秋霞电影网一区二区| 9191久久久久久久久久久| 男人操女人的视频在线观看欧美| 91精品国产乱| 九九九精品视频| 久久久青草青青国产亚洲免观| 国产高清不卡二三区| 亚洲成a人v欧美综合天堂下载| 欧美成人aa大片| 亚洲伦理在线免费看| 不卡大黄网站免费看| 老汉av免费一区二区三区| 欧美日韩一卡二卡| 午夜视频一区在线观看| 欧美福利视频导航| 久久av资源站| 国产欧美日韩久久| 成人免费不卡视频| 怡红院av一区二区三区| 欧美色成人综合| 奇米影视在线99精品| 精品国产乱子伦一区| 懂色av中文字幕一区二区三区| 国产嫩草影院久久久久| 91在线国产福利| 亚洲第一主播视频| 欧美r级在线观看| 懂色av一区二区夜夜嗨| 亚洲男人天堂av网| 欧美日本在线一区| 韩国视频一区二区| 国产精品不卡一区| 欧美日韩的一区二区| 极品美女销魂一区二区三区 | 久久av老司机精品网站导航| 国产欧美精品区一区二区三区| 91蜜桃网址入口| 午夜精品一区二区三区免费视频 | 国产乱码精品一区二区三| 国产精品久久久久久久久久久免费看 | 欧美一区二区三区思思人| 韩国女主播一区二区三区| 中文字幕一区免费在线观看| 欧美人伦禁忌dvd放荡欲情| 国内不卡的二区三区中文字幕| 亚洲天堂精品视频| 日韩一区二区三区电影在线观看 | 中文字幕一区二区不卡 | 久久99精品久久久久久国产越南 | 一本大道av伊人久久综合| 日韩专区中文字幕一区二区| 国产欧美一区二区精品仙草咪| 色综合天天综合狠狠| 日韩综合小视频| 亚洲国产成人午夜在线一区| 欧美人妇做爰xxxⅹ性高电影| 国产成人综合亚洲91猫咪| 亚洲一区二区三区爽爽爽爽爽| 欧美tickle裸体挠脚心vk| 欧美亚洲国产一区二区三区va| 精品在线亚洲视频| 一区二区欧美精品| 国产日韩欧美亚洲| 欧美一级欧美一级在线播放| 91麻豆精东视频| 国产黄色精品视频| 日韩成人伦理电影在线观看| 成人欧美一区二区三区视频网页| 日韩欧美中文字幕公布| 色呦呦网站一区| 国产黄色91视频| 蜜臀a∨国产成人精品| 一区二区日韩av| 国产精品久久福利| 久久青草国产手机看片福利盒子 | 久久aⅴ国产欧美74aaa| 亚洲bt欧美bt精品777| 国产精品盗摄一区二区三区| 精品美女一区二区| 欧美精品久久天天躁| 色中色一区二区| 9久草视频在线视频精品| 激情文学综合插| 免费成人在线视频观看| 亚洲国产色一区| 一区二区三区中文字幕电影| 国产精品久久久久精k8 | 91视频91自| 风间由美一区二区三区在线观看 | 欧美国产精品劲爆| 久久先锋影音av鲁色资源| 日韩免费性生活视频播放| 欧美日韩在线电影| 欧美专区亚洲专区| 色哟哟在线观看一区二区三区| 成人福利电影精品一区二区在线观看| 激情六月婷婷综合| 久热成人在线视频| 日韩av电影免费观看高清完整版 | 日韩一区二区三| 日韩视频免费观看高清完整版| 欧美日韩一级大片网址| 欧美色老头old∨ideo| 欧美日韩另类一区| 欧美日韩一区中文字幕| 欧美三级一区二区| 欧美日本在线看| 欧美日韩国产欧美日美国产精品| 欧美亚洲动漫另类| 欧美日韩大陆在线| 欧美一区二区精品| 精品国免费一区二区三区| 日韩一级免费观看| 久久久久久99精品| 欧美国产精品久久| 一色桃子久久精品亚洲| 一区二区三区资源| 午夜久久福利影院| 久久电影网电视剧免费观看| 久久99这里只有精品| 国产精品影视在线观看| av在线播放一区二区三区| 色哟哟亚洲精品| 91精品国产手机| 久久理论电影网| 国产精品女上位|