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

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

?? btnst.h

?? 《MFC窗口程序設計》書籍源碼 詳細講解MFC框架程序設計
?? H
字號:
//
//	Class:		CButtonST
//
//	Compiler:	Visual C++
//	Tested on:	Visual C++ 5.0
//				Visual C++ 6.0
//
//	Version:	See GetVersionC() or GetVersionI()
//
//	Created:	xx/xxxx/1998
//	Updated:	03/March/2003
//
//	Author:		Davide Calabro'		davide_calabro@yahoo.com
//									http://www.softechsoftware.it
//
//	Note:		Code for the PreSubclassWindow and OnSetStyle functions
//				has been taken from the COddButton class
//				published by Paolo Messina and Jerzy Kaczorowski
//
//	Disclaimer
//	----------
//	THIS SOFTWARE AND THE ACCOMPANYING FILES ARE DISTRIBUTED "AS IS" AND WITHOUT
//	ANY WARRANTIES WHETHER EXPRESSED OR IMPLIED. NO REPONSIBILITIES FOR POSSIBLE
//	DAMAGES OR EVEN FUNCTIONALITY CAN BE TAKEN. THE USER MUST ASSUME THE ENTIRE
//	RISK OF USING THIS SOFTWARE.
//
//	Terms of use
//	------------
//	THIS SOFTWARE IS FREE FOR PERSONAL USE OR FREEWARE APPLICATIONS.
//	IF YOU USE THIS SOFTWARE IN COMMERCIAL OR SHAREWARE APPLICATIONS YOU
//	ARE GENTLY ASKED TO DONATE 5$ (FIVE U.S. DOLLARS) TO THE AUTHOR:
//
//		Davide Calabro'
//		P.O. Box 65
//		21019 Somma Lombardo (VA)
//		Italy
//
#ifndef _BTNST_H
#define _BTNST_H

// Uncomment the following 2 lines to enable support for BCMenu class
#define	BTNST_USE_BCMENU
#include "BCMenu.h"

// Uncomment the following line to enable support for sound effects
#define	BTNST_USE_SOUND

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

// Return values
#ifndef	BTNST_OK
#define	BTNST_OK						0
#endif
#ifndef	BTNST_INVALIDRESOURCE
#define	BTNST_INVALIDRESOURCE			1
#endif
#ifndef	BTNST_FAILEDMASK
#define	BTNST_FAILEDMASK				2
#endif
#ifndef	BTNST_INVALIDINDEX
#define	BTNST_INVALIDINDEX				3
#endif
#ifndef	BTNST_INVALIDALIGN
#define	BTNST_INVALIDALIGN				4
#endif
#ifndef	BTNST_BADPARAM
#define	BTNST_BADPARAM					5
#endif
#ifndef	BTNST_INVALIDPRESSEDSTYLE
#define	BTNST_INVALIDPRESSEDSTYLE		6
#endif

// Dummy identifier for grayscale icon
#ifndef	BTNST_AUTO_GRAY
#define	BTNST_AUTO_GRAY					(HICON)(0xffffffff - 1L)
#endif
// Dummy identifier for 15% darker icon
#ifndef	BTNST_AUTO_DARKER
#define	BTNST_AUTO_DARKER				(HICON)(0xffffffff - 2L)
#endif

class CButtonST : public CButton
{
public:
    CButtonST();
	~CButtonST();

    enum	{	ST_ALIGN_HORIZ	= 0,			// Icon/bitmap on the left, text on the right
				ST_ALIGN_VERT,					// Icon/bitmap on the top, text on the bottom
				ST_ALIGN_HORIZ_RIGHT,			// Icon/bitmap on the right, text on the left
				ST_ALIGN_OVERLAP				// Icon/bitmap on the same space as text
			};

	enum	{	BTNST_COLOR_BK_IN	= 0,		// Background color when mouse is INside
				BTNST_COLOR_FG_IN,				// Text color when mouse is INside
				BTNST_COLOR_BK_OUT,				// Background color when mouse is OUTside
				BTNST_COLOR_FG_OUT,				// Text color when mouse is OUTside
				BTNST_COLOR_BK_FOCUS,			// Background color when the button is focused
				BTNST_COLOR_FG_FOCUS,			// Text color when the button is focused

				BTNST_MAX_COLORS
			};

    enum	{	BTNST_PRESSED_LEFTRIGHT = 0,	// Pressed style from left to right (as usual)
				BTNST_PRESSED_TOPBOTTOM			// Pressed style from top to bottom
			};

	// ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CButtonST)
	public:
	virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void PreSubclassWindow();
	//}}AFX_VIRTUAL

public:
	DWORD SetDefaultColors(BOOL bRepaint = TRUE);
	DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE);
	DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor);
	DWORD OffsetColor(BYTE byColorIndex, short shOffset, BOOL bRepaint = TRUE);

	DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE);
	int GetCheck();

	DWORD SetURL(LPCTSTR lpszURL = NULL);
	void DrawTransparent(BOOL bRepaint = FALSE);
	DWORD SetBk(CDC* pDC);

	BOOL GetDefault();
	DWORD SetAlwaysTrack(BOOL bAlwaysTrack = TRUE);

	void SetTooltipText(int nText, BOOL bActivate = TRUE);
	void SetTooltipText(LPCTSTR lpszText, BOOL bActivate = TRUE);
	void ActivateTooltip(BOOL bEnable = TRUE);
	DWORD EnableBalloonTooltip();

	DWORD SetBtnCursor(int nCursorId = NULL, BOOL bRepaint = TRUE);

	DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE);
	DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE);
	DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE);

	DWORD DrawBorder(BOOL bDrawBorder = TRUE, BOOL bRepaint = TRUE);
	DWORD DrawFlatFocus(BOOL bDrawFlatFocus, BOOL bRepaint = TRUE);

	DWORD SetIcon(int nIconIn, int nCxDesiredIn, int nCyDesiredIn, int nIconOut = NULL, int nCxDesiredOut = 0, int nCyDesiredOut = 0);
	DWORD SetIcon(int nIconIn, int nIconOut = NULL);
	DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL);

	DWORD SetBitmaps(int nBitmapIn, COLORREF crTransColorIn, int nBitmapOut = NULL, COLORREF crTransColorOut = 0);
	DWORD SetBitmaps(HBITMAP hBitmapIn, COLORREF crTransColorIn, HBITMAP hBitmapOut = NULL, COLORREF crTransColorOut = 0);

	void SizeToContent();

#ifdef	BTNST_USE_BCMENU
	DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bWinXPStyle = TRUE, UINT nToolbarID = NULL, CSize sizeToolbarIcon = CSize(16, 16), COLORREF crToolbarBk = RGB(255, 0, 255), BOOL bRepaint = TRUE);
#else
	DWORD SetMenu(UINT nMenu, HWND hParentWnd, BOOL bRepaint = TRUE);
#endif
	DWORD SetMenuCallback(HWND hWnd, UINT nMessage, LPARAM lParam = 0);

#ifdef	BTNST_USE_SOUND
	DWORD SetSound(LPCTSTR lpszSound, HMODULE hMod = NULL, BOOL bPlayOnClick = FALSE, BOOL bPlayAsync = TRUE);
#endif

	static short GetVersionI()		{return 39;}
	static LPCTSTR GetVersionC()	{return (LPCTSTR)_T("3.9");}

	BOOL	m_bShowDisabledBitmap;
	POINT	m_ptImageOrg;
	POINT	m_ptPressedOffset;

protected:
    //{{AFX_MSG(CButtonST)
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	afx_msg void OnKillFocus(CWnd* pNewWnd);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnSysColorChange();
	afx_msg BOOL OnClicked();
	afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
	afx_msg void OnEnable(BOOL bEnable);
	afx_msg void OnCancelMode();
	afx_msg UINT OnGetDlgCode();
	//}}AFX_MSG

#ifdef	BTNST_USE_BCMENU
	afx_msg LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu);
	afx_msg void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);
#endif

	afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
	HICON CreateGrayscaleIcon(HICON hIcon);
	HICON CreateDarkerIcon(HICON hIcon);
	HBITMAP CreateGrayscaleBitmap(HBITMAP hBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTrans);
	HBITMAP CreateDarkerBitmap(HBITMAP hBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTrans);
	COLORREF DarkenColor(COLORREF crColor, double dFactor);
	virtual DWORD OnDrawBackground(CDC* pDC, CRect* pRect);
	virtual DWORD OnDrawBorder(CDC* pDC, CRect* pRect);

	BOOL		m_bIsFlat;			// Is a flat button?
	BOOL		m_bMouseOnButton;	// Is mouse over the button?
	BOOL		m_bDrawTransparent;	// Draw transparent?
	BOOL		m_bIsPressed;		// Is button pressed?
	BOOL		m_bIsFocused;		// Is button focused?
	BOOL		m_bIsDisabled;		// Is button disabled?
	BOOL		m_bIsDefault;		// Is default button?
	BOOL		m_bIsCheckBox;		// Is the button a checkbox?
	BYTE		m_byAlign;			// Align mode
	BOOL		m_bDrawBorder;		// Draw border?
	BOOL		m_bDrawFlatFocus;	// Draw focus rectangle for flat button?
	COLORREF	m_crColors[BTNST_MAX_COLORS];	// Colors to be used
	HWND		m_hParentWndMenu;	// Handle to window for menu selection
	BOOL		m_bMenuDisplayed;	// Is menu displayed ?

#ifdef	BTNST_USE_BCMENU
	BCMenu		m_menuPopup;		// BCMenu class instance
#else
	HMENU		m_hMenu;			// Handle to associated menu
#endif

private:
	LRESULT OnSetCheck(WPARAM wParam, LPARAM lParam);
	LRESULT OnGetCheck(WPARAM wParam, LPARAM lParam);
	LRESULT OnSetStyle(WPARAM wParam, LPARAM lParam);
	LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);

	void CancelHover();
	void FreeResources(BOOL bCheckForNULL = TRUE);
	void PrepareImageRect(BOOL bHasTitle, RECT* rpItem, CRect* rpTitle, BOOL bIsPressed, DWORD dwWidth, DWORD dwHeight, CRect* rpImage);
	HBITMAP CreateBitmapMask(HBITMAP hSourceBitmap, DWORD dwWidth, DWORD dwHeight, COLORREF crTransColor);
	virtual void DrawTheIcon(CDC* pDC, BOOL bHasTitle, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
	virtual void DrawTheBitmap(CDC* pDC, BOOL bHasTitle, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
	virtual void DrawTheText(CDC* pDC, LPCTSTR lpszText, RECT* rpItem, CRect* rpCaption, BOOL bIsPressed, BOOL bIsDisabled);
	void PaintBk(CDC* pDC);

	void InitToolTip();

	HCURSOR		m_hCursor;			// Handle to cursor
	CToolTipCtrl m_ToolTip;			// Tooltip

	CDC			m_dcBk;
	CBitmap		m_bmpBk;
	CBitmap*	m_pbmpOldBk;

	BOOL		m_bAlwaysTrack;		// Always hilight button?
	int			m_nCheck;			// Current value for checkbox
	UINT		m_nTypeStyle;		// Button style
	DWORD		m_dwToolTipStyle;	// Style of tooltip control

	TCHAR		m_szURL[_MAX_PATH];	// URL to open when clicked

#pragma pack(1)
	typedef struct _STRUCT_ICONS
	{
		HICON		hIcon;			// Handle to icon
		DWORD		dwWidth;		// Width of icon
		DWORD		dwHeight;		// Height of icon
	} STRUCT_ICONS;
#pragma pack()

#pragma pack(1)
	typedef struct _STRUCT_BITMAPS
	{
		HBITMAP		hBitmap;		// Handle to bitmap
		DWORD		dwWidth;		// Width of bitmap
		DWORD		dwHeight;		// Height of bitmap
		HBITMAP		hMask;			// Handle to mask bitmap
		COLORREF	crTransparent;	// Transparent color
	} STRUCT_BITMAPS;
#pragma pack()

#pragma pack(1)
	typedef struct _STRUCT_CALLBACK
	{
		HWND		hWnd;			// Handle to window
		UINT		nMessage;		// Message identifier
		WPARAM		wParam;
		LPARAM		lParam;
	} STRUCT_CALLBACK;
#pragma pack()

	STRUCT_ICONS	m_csIcons[2];
	STRUCT_BITMAPS	m_csBitmaps[2];

	STRUCT_CALLBACK	m_csCallbacks;

#ifdef	BTNST_USE_SOUND
#pragma pack(1)
	typedef struct _STRUCT_SOUND
	{
		TCHAR		szSound[_MAX_PATH];
		LPCTSTR		lpszSound;
		HMODULE		hMod;
		DWORD		dwFlags;
	} STRUCT_SOUND;
#pragma pack()

	STRUCT_SOUND	m_csSounds[2];	// Index 0 = Over	1 = Clicked
#endif

	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品的网站| 免费成人美女在线观看.| 亚洲午夜精品在线| 美女视频网站久久| 国产一区亚洲一区| 日本道在线观看一区二区| 欧美一区二区精品| 国产精品理伦片| 午夜a成v人精品| 色婷婷久久久久swag精品| 欧美一卡二卡三卡| 亚洲精品在线观看视频| 亚洲一区二区三区视频在线播放| 国内精品视频一区二区三区八戒| 欧美日韩一区二区三区四区 | 日韩av不卡在线观看| 99精品国产91久久久久久| 日韩一区二区三区四区| 亚洲成av人片在线观看无码| 国产成人亚洲综合a∨婷婷| 久久精品国产亚洲一区二区三区| 国产91精品久久久久久久网曝门| 91免费视频网址| 国产拍揄自揄精品视频麻豆| 香蕉成人伊视频在线观看| 色呦呦国产精品| 国产精品午夜春色av| 极品瑜伽女神91| 欧美成人a视频| 午夜影院久久久| 欧美日韩精品一区二区三区 | 懂色av一区二区夜夜嗨| 精品久久人人做人人爱| 亚洲成a人v欧美综合天堂下载| 欧美亚洲国产一区在线观看网站| 国产精品久久久久久久久久久免费看 | 99精品国产视频| 日韩一区二区不卡| 国产精品久久久久久妇女6080| 美腿丝袜在线亚洲一区| 欧美性一级生活| 亚洲最大成人综合| 91网站在线观看视频| 久久久久国产免费免费| www日韩大片| 狠狠色丁香久久婷婷综合_中| 一区二区三区欧美激情| 国产福利一区二区三区视频| 欧美中文字幕一区| 亚洲高清中文字幕| 欧美性做爰猛烈叫床潮| 国产欧美va欧美不卡在线| 国产精品自拍一区| 精品久久人人做人人爰| 久久精品久久综合| 久久久91精品国产一区二区精品| 国内精品写真在线观看| 日韩欧美在线不卡| 一区二区高清免费观看影视大全| 成人午夜激情影院| 欧美国产激情一区二区三区蜜月| 国产成人在线视频网站| 亚洲免费在线视频| 精品视频在线免费| 日本在线不卡一区| 久久这里只有精品6| 国产成人一级电影| 无吗不卡中文字幕| 精品国产精品网麻豆系列| 不卡欧美aaaaa| 亚洲国产人成综合网站| 日韩亚洲欧美高清| 色综合天天天天做夜夜夜夜做| 亚洲一区二区三区在线播放| 欧美三级在线视频| 韩国v欧美v亚洲v日本v| 亚洲日本韩国一区| 日韩欧美国产一二三区| 国产91精品久久久久久久网曝门| 欧美成人猛片aaaaaaa| 国产人成亚洲第一网站在线播放| 午夜电影久久久| 亚洲不卡一区二区三区| 日韩免费看的电影| 色综合激情五月| 麻豆专区一区二区三区四区五区| 从欧美一区二区三区| 日韩黄色小视频| 国产午夜亚洲精品午夜鲁丝片| 91黄色免费版| 狠狠色丁香久久婷婷综合_中| 中文字幕一区二区三区色视频| 欧美电视剧免费全集观看| 99国内精品久久| 蜜桃久久久久久久| 亚洲视频一二三区| 26uuu精品一区二区三区四区在线| 欧美私人免费视频| 丁香五精品蜜臀久久久久99网站| 青青草国产精品亚洲专区无| 亚洲品质自拍视频| 国产婷婷精品av在线| 精品乱人伦小说| 99免费精品视频| 香蕉av福利精品导航| 精品国产伦一区二区三区观看方式 | 欧美成人a视频| a美女胸又www黄视频久久| 奇米在线7777在线精品| 亚洲欧美激情一区二区| 久久久久久久久97黄色工厂| 日韩亚洲欧美一区| 欧美亚洲一区二区在线| 色吧成人激情小说| 丰满亚洲少妇av| 免费高清在线视频一区·| 奇米色一区二区| 视频在线观看国产精品| 日韩精品一级二级| 亚洲国产一区二区三区青草影视| 国产精品亲子伦对白| 欧美激情一区二区三区不卡 | 欧美电影免费观看高清完整版在| 欧美日韩一区二区三区高清| 欧美日本在线看| 欧美视频一区在线| 成人高清免费在线播放| 成人看片黄a免费看在线| 国产一区二区日韩精品| 国产精品香蕉一区二区三区| 国内精品第一页| 激情综合网av| aaa国产一区| 成人黄色电影在线| 欧美中文字幕不卡| 欧美欧美欧美欧美首页| 欧美日韩国产小视频| 日韩欧美中文字幕一区| 日韩视频在线你懂得| 久久九九久久九九| 国产精品麻豆视频| 中文字幕日韩av资源站| 首页欧美精品中文字幕| 久久国产日韩欧美精品| 亚洲综合成人在线视频| 麻豆免费看一区二区三区| 久久9热精品视频| 成人av片在线观看| 91看片淫黄大片一级在线观看| av综合在线播放| 欧美一区二区三区男人的天堂| 日韩欧美黄色影院| 亚洲精品综合在线| 肉色丝袜一区二区| 波多野结衣在线aⅴ中文字幕不卡| 99久久亚洲一区二区三区青草| 91成人网在线| 久久久久久久久久电影| 亚洲精选免费视频| 国产一区二区导航在线播放| 不卡视频一二三四| 色婷婷精品久久二区二区蜜臂av| 亚洲精品一区二区三区在线观看| 国产精品久久久久久久久久免费看| 天堂在线亚洲视频| 国产精品夜夜爽| 欧美老女人在线| 国产欧美日韩亚州综合| 亚洲国产精品久久人人爱| 国产成人av影院| 欧美日韩一区二区三区免费看| 国产精品妹子av| 五月激情丁香一区二区三区| 狠狠色狠狠色合久久伊人| 欧美一区三区二区| 国产精品高清亚洲| 国产麻豆日韩欧美久久| 91福利在线观看| 成人午夜视频福利| 日韩一二在线观看| 亚洲欧美电影一区二区| 成人av网站在线观看免费| 日韩精品一区二区三区四区视频| 亚洲精品午夜久久久| 国产乱码精品一区二区三区五月婷| 欧美午夜宅男影院| 亚洲久草在线视频| 成人综合婷婷国产精品久久免费| 日韩精品一区二区三区蜜臀| 夜夜嗨av一区二区三区网页 | 婷婷久久综合九色综合绿巨人 | 国产精品色哟哟| 蜜桃精品在线观看| 成人h动漫精品| 欧美国产综合一区二区| 蓝色福利精品导航| 日韩三级视频在线观看| 亚洲成va人在线观看| 欧美视频一区在线| 亚洲另类在线视频|