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通明按鈕,感興致的讀者可以本身測試一下。