亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

VC++中HTControl的CHTButton按鈕控件類用法實例解析

2020-01-26 15:25:32
字體:
來源:轉載
供稿:網友

本文以實例形式講解了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透明按鈕,感興趣的讀者可以自己測試一下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区精品电影| 精品视频久久久久久| 日本午夜在线亚洲.国产| 欧美午夜精品伦理| 精品视频中文字幕| 日韩在线免费观看视频| 中文字幕在线观看日韩| 亚洲精品按摩视频| 国产成人久久久| 国产精品1区2区在线观看| 91手机视频在线观看| 成人免费观看网址| 日韩亚洲欧美成人| 91av成人在线| 91免费的视频在线播放| 国产精品福利在线| 亚洲一区二区三区四区视频| 亚洲成年人影院在线| 欧美日韩福利在线观看| 久久久午夜视频| 欧美高跟鞋交xxxxhd| 日韩欧美在线视频免费观看| 亚洲精品一区中文| 伊人成人开心激情综合网| 国产精品av在线| 久久躁日日躁aaaaxxxx| 国产91ⅴ在线精品免费观看| 精品在线欧美视频| 中文字幕在线观看日韩| 欧美特级www| 欧美性猛交xxxx黑人| 国产婷婷成人久久av免费高清| 日韩欧美中文免费| 美女久久久久久久| 亚洲女人天堂成人av在线| 热re91久久精品国99热蜜臀| 69久久夜色精品国产69乱青草| 中文字幕日韩欧美在线视频| 亚洲一区中文字幕在线观看| 国产一区二区三区丝袜| 日韩网站免费观看| 久青草国产97香蕉在线视频| 国产精品视频久久久久| 国产亚洲精品va在线观看| 成人激情春色网| 国产综合在线看| 成人激情在线播放| 国产日韩一区在线| 色综合久久精品亚洲国产| 久久精品国产欧美亚洲人人爽| 欧美最近摘花xxxx摘花| 国产69久久精品成人| 亚洲激情视频在线观看| 久久久在线视频| 欧美国产日本在线| 久久精品久久久久电影| 欧美肥婆姓交大片| 午夜精品三级视频福利| 久久久久久国产| 中文字幕在线视频日韩| 国产一区二区精品丝袜| 日韩大片在线观看视频| 国产精品亚洲美女av网站| 亚洲欧美一区二区精品久久久| 国产精品久久久久久超碰| 国产精品一区二区三区成人| zzijzzij亚洲日本成熟少妇| 亚洲成avwww人| 亚洲国产高清福利视频| 国产成人精品一区| 久久影院在线观看| 81精品国产乱码久久久久久| 97**国产露脸精品国产| 欧美一区二区视频97| 色偷偷噜噜噜亚洲男人| 日韩在线播放视频| 久久久精品久久| 成人综合网网址| 一区二区亚洲欧洲国产日韩| 国内揄拍国内精品| 综合激情国产一区| 国产欧美一区二区三区久久| 在线观看91久久久久久| 欧美精品福利视频| 久久成人这里只有精品| 精品福利在线视频| 欧美性猛交xxxx久久久| 在线成人激情视频| 伦理中文字幕亚洲| 久久亚洲精品中文字幕冲田杏梨| 成人精品一区二区三区| 98视频在线噜噜噜国产| 久久中文字幕国产| 国产福利视频一区| 一本色道久久88综合日韩精品| 亚洲网站在线看| 97在线日本国产| 亚洲成av人片在线观看香蕉| 欧美午夜美女看片| 97精品久久久中文字幕免费| 日韩精品高清在线观看| 欧美激情视频在线观看| 国产精品久久久久久久久| 久久精品最新地址| 亚洲一区二区久久久| 91精品国产电影| 国产日本欧美视频| 伦理中文字幕亚洲| 成人性生交大片免费看小说| 日韩a**站在线观看| 久久久国产影院| 欧美午夜精品久久久久久浪潮| 深夜福利亚洲导航| 欧美激情精品久久久久久黑人| 欧美电影免费播放| 最新国产精品拍自在线播放| 在线视频精品一| 久久乐国产精品| 国产精品久久久久久久久久久久久久| 日韩在线视频网| 久久久久久有精品国产| 欧美性xxxxxxx| 在线观看日韩专区| 亚洲免费av网址| 一区二区三区四区在线观看视频| 国产精品久久久久9999| 亚洲最大在线视频| 亚洲男人天堂2023| 丝袜亚洲欧美日韩综合| 欧美高清理论片| 亚洲精品美女免费| 国内伊人久久久久久网站视频| 国内外成人免费激情在线视频| 欧美日韩xxxxx| 成人黄色网免费| 最近2019中文字幕mv免费看| 97久久精品人人澡人人爽缅北| 亚洲第一免费播放区| 久久精品国产亚洲一区二区| 亚洲精品视频免费在线观看| 欧美网站在线观看| 日韩中文字幕网| 日韩小视频在线| 久久香蕉国产线看观看av| 亚洲电影免费观看| 欧美成人性生活| 国产精品第一页在线| 色婷婷综合久久久久中文字幕1| 久久免费视频在线观看| 日韩国产欧美精品一区二区三区| 7m精品福利视频导航| 国产精品美女主播| 欧美一级视频一区二区| 国产精品嫩草影院久久久| 欧洲亚洲免费视频| 成人信息集中地欧美| 亚洲第一级黄色片| 美日韩精品视频免费看| 精品久久国产精品| 九九久久精品一区| 亚洲图片欧美午夜| 日韩精品在线观看一区二区| 国产成+人+综合+亚洲欧美丁香花| 欧美综合一区第一页|