程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> VC++中HTControl的CHTButton按鈕控件類用法實例解析

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

編輯:關於C++

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved