VC++中HTControl的CHTButton按鈕控件類用法實例解析。本站提示廣大學習愛好者:(VC++中HTControl的CHTButton按鈕控件類用法實例解析)文章只能為提供參考,不一定能成為您想要的結果。以下是VC++中HTControl的CHTButton按鈕控件類用法實例解析正文
本文以實例情勢講授了VC++中HTControl控件類的CHTButton按鈕控件類用法,信任對年夜家更好的懂得VC++有必定的贊助。詳細內容以下:
普通懂得VC++的同伙都曉得,VC++ 按鈕控件CHTButton附屬HTControl控件組,直接由WIN32 API完成,你可以在SDK,MFC,wxWidget等情況下應用它。支撐生成各類類型的按鈕,好比:通俗按鈕,PNG通明按鈕,復選框按鈕,單選按鈕等。應用時請留意,窗體必需靜態創立,代碼段以下:
m_HTBtnClose.Create(758, 0, 39, 20, m_hWnd, iChildId++); m_HTBtnClose.SetAllBitmap(m_hBmpBtnCloseNormal, m_hBmpBtnCloseDown,m_hBmpBtnCloseHover); m_HTBtnClose.SetParentBgMemDC(m_hdcMemBuf);
CHTButton.h控件焦點代碼及正文解釋以下:
/***************************************************************** | Copyright (c) 2012, ******************************************************************/ #if !defined(__CHTBUTTON_H__) #define __CHTBUTTON_H__ #include "CHTTip.h" class CMyButton; class AFX_CLASS_EXPORT CHTButton { public: CHTButton(); ~CHTButton(); /**************************************************************************** | 函數功效:創立按鈕 | | 輸出參數: | | x: 窗體地位x坐標(絕對於父窗體) | | y: 窗體地位y坐標(絕對於父窗體) | | iWidth: 窗體寬 | | iHeight: 窗體高 | | hParent: 父窗口句柄 | | hBtnId: 窗體ID | | szLabel: 窗體題目 | | dwStyle: 按鈕行動標識 | | BS_CHECKBOX :復選框按鈕 | | BS_RADIOBUTTON :單選按鈕 | | BS_NOTIFY:發送獲得(BN_SETFOCUS)掉去(BN_KILLFOCUS)核心的告訴 | | BS_NOTIFY << 2: 發送按下告訴(BN_KILLFOCUS + 2) | | 輸入參數:無 | | 前往值: 勝利:窗口句柄 掉敗: NULL | | 解釋: | ****************************************************************************/ HWND Create(int x, int y, int iWidth, int iHeight, HWND hParent, int iBtnId, TCHAR* szLabel = NULL, DWORD dwStyle = NULL); /**************************************************************************** | 函數功效:轉變窗口地位年夜小 | | 輸出參數: | | iWidth: 窗體寬 -1表現寬不變 | | iHeight: 窗體高 -1表現高不變 | | x: 窗體地位x坐標 | | y: 窗體地位y坐標 | | bRepaint: 轉變後能否重繪窗口 | | 輸入參數:無 | | 前往值: 無 | | 說 明:假如轉變了窗口年夜小,在MoveWindow之前須要從新設置各類位圖 | ****************************************************************************/ void MoveWindow(int x, int y, int iWidth = -1, int iHeight = -1, BOOL bRepaint = TRUE); /**************************************************************************** | 函數功效:設置提醒窗口類指針 | | 輸出參數: | | pclTip: 提醒窗口類指針 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetToolTip(CHTTip* pclTip); /**************************************************************************** | 函數功效:設置提醒窗口的文本 | | 輸出參數: | | szTipText: 提醒文本 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetTipText(TCHAR* szTipText); /**************************************************************************** | 函數功效:獲得窗口的句柄 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: 窗體句柄 | | 說 明: | ****************************************************************************/ HWND GetHandle(); /**************************************************************************** | 函數功效:獲得父窗口的句柄 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: 父窗體句柄 | | 說 明: | ****************************************************************************/ HWND GetParent(); /**************************************************************************** | 函數功效:設置字體 | | 輸出參數: | | hFont: 字體 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetFont(HFONT hFont); /**************************************************************************** | 函數功效:設置文字的色彩 | | 輸出參數: | | CRText: 色彩值 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetBtnTextColor(COLORREF CRText); /**************************************************************************** | 函數功效:設置字體(鼠標逗留窗體上時) | | 輸出參數: | | hFont: 字體 | | 輸入參數:無 | | 前往值: 無 | | 說 明:如未設置則采取SetFont設置的字體 | ****************************************************************************/ void SetHoverFont(HFONT hFont); /**************************************************************************** | 函數功效:設置文字的色彩(鼠標逗留窗體上時) | | 輸出參數: | | CRText: 色彩值 | | 輸入參數:無 | | 前往值: 無 | | 說 明:如未設置則采取SetBtnTextColor設置的色彩 | ****************************************************************************/ void SetHoverBtnTextColor(COLORREF CRText); /**************************************************************************** | 函數功效:使窗口有效並繪制窗口 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void Disable(); /**************************************************************************** | 函數功效:使窗口有用並按常態繪制窗口 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void Enable(); /**************************************************************************** | 函數功效:設置按鈕顯示的文本 | | 輸出參數: | | szLabel: 按鈕的文本 | | point: 文字肇端坐標,默許居中 | | bTextMove:按下時文字能否挪動(向右下角挪動一像素) | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetLabel(TCHAR* szLabel, POINT* point = NULL, BOOL bTextMove = TRUE); /**************************************************************************** | 函數功效:獲得按鈕上的文本 | | 輸出參數: | | szLabel: 按鈕的文本 | | 輸入參數:無 | | 前往值: 文本指針 | | 說 明: | ****************************************************************************/ TCHAR* GetLabel(); /**************************************************************************** | 函數功效:獲得按鈕狀況 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: 按鈕狀況 0:常態 1:按下 2:長按 3:有效 | | 說 明: | ****************************************************************************/ int GetState(); /**************************************************************************** | 函數功效:設置長按失效時光 | | 輸出參數: | | wLongPressTime : 長按失效時光(長按告訴碼BN_KILLFOCUS + 3) | | 0表現不翻開長按功效 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetLongPressTime(WORD wLongPressTime); /**************************************************************************** | 函數功效:設置復選和單選按鈕的狀況 | | 輸出參數: | | bCheck: FALSE(BST_UNCHECKED)或許TRUE(BST_CHECKED) | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetCheck(BOOL bCheck); /**************************************************************************** | 函數功效:獲得復選和單選按鈕的狀況 | | 輸出參數:無 | | 輸入參數:無 | | 前往值: FALSE(BST_UNCHECKED)或許TRUE(BST_CHECKED) | | 說 明: | ****************************************************************************/ BOOL GetCheck(); /**************************************************************************** | 函數功效:設置按鈕常態的位圖 | | 輸出參數: | | hBitmap: 位圖 | | iNormalLeftLen: 位圖左邊弗成拉伸部門的長度 | | iNormalRightLen: 位圖右邊弗成拉伸部門的長度 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetNormalBitmap(HBITMAP hBitmap, int iNormalLeftLen = 0, int iNormalRightLen = 0); /**************************************************************************** | 函數功效:設置按鈕按下的位圖 | | 輸出參數: | | hBitmap: 位圖 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetLBtnDownBitmap(HBITMAP hBitmap); /**************************************************************************** | 函數功效:設置鼠標在按鈕之上時按鈕的位圖 | | 輸出參數: | | hBitmap: 位圖 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetHoverBitmap(HBITMAP hBitmap); /**************************************************************************** | 函數功效:設置按鈕有效時的位圖 | | 輸出參數: | | hBitmap: 位圖 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetDisableBitmap(HBITMAP hBitmap); void SetAllBitmap(HBITMAP hBitmapNormal, HBITMAP hBitmapLBtnDown, HBITMAP hBitmapHover, int iNormalLeftLen = 0, int iNormalRightLen = 0); /**************************************************************************** | 函數功效:設置按鈕上的圖標的位圖 | | 輸出參數: | | hBitmap: 位圖 | | pIconRect:圖標占領的矩形 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetIcon(HBITMAP hBitmap, RECT* pIconRect); /**************************************************************************** | 函數功效:設置窗體的不通明度 | | 輸出參數: | | iTransparency: 不通明度的百分比 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void SetTransparency(int iTransparency); /**************************************************************************** | 函數功效:設置父窗體配景內存畫布 | | 輸出參數: | | hParentBgMemDC: 父窗體配景內存畫布 | | 輸入參數:無 | | 前往值: 無 | | 說 明:當父窗體配景在變更而且此窗體自己也有通明度時(包含窗體應用的位圖 | | 具有通明度或許窗體沒有配景位圖),須要挪用此接口 | ****************************************************************************/ void SetParentBgMemDC(HDC hParentBgMemDC, int x = 0, int y = 0); /**************************************************************************** | 函數功效:設置父窗體應用的配景位圖 | | 輸出參數: | | hParentBgBitmap: 父窗體應用的配景位圖 | | x, y 位圖繪畫肇端點坐標 | | 輸入參數:無 | | 前往值: 無 | | 說 明:當父窗體配景應用靜態位圖而且此窗體自己也有通明度時(包含窗體應用 | | 的位圖具有通明度或許窗體沒有配景位圖),須要挪用此接口 | ****************************************************************************/ void SetParentBgBitmap(HBITMAP hParentBgBitmap, int x = 0, int y = 0); /**************************************************************************** | 函數功效:設置父窗體配景色彩 | | 輸出參數: | | CRParentBg: 父窗體配景色彩 | | 輸入參數:無 | | 前往值: 無 | | 說 明:當父窗體配景應用固定色彩而且此窗體自己也有通明度時(包含窗體應用 | | 的位圖具有通明度或許窗體沒有配景位圖),須要挪用此接口 | ****************************************************************************/ void SetParentBgColor(COLORREF CRParentBg = RGB(236, 233, 216)); /**************************************************************************** | 函數功效:把窗口繪制到目的裝備內容 | | 輸出參數: | | hdcDest: 目的裝備內容 | | x, y: 繪畫肇端坐標 | | 輸入參數:無 | | 前往值: 無 | | 說 明: | ****************************************************************************/ void DrawWindow(HDC hdcDest, int x = 0, int y = 0); CMyButton* GetCMyButton(); private: CMyButton* m_pclBtn; }; #endif //!__CHTBUTTON_H__
此類支撐窗體以隨意率性通明度顯示,操作很簡略,應用上面接口便可完成:
void SetTransparency(int iTransparency);
CHTButton類同時也完成了PNG通明按鈕,感興致的讀者可以本身測試一下。