程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 在你的程序中如何使用CButtonST類

在你的程序中如何使用CButtonST類

編輯:vc教程

  首先在你的工程中加入如下文件:

BtnST.h
BtnST.cpp

  從v3.5版本開始,CButtonST支持使用BCMenu類創建菜單。為了能夠使用BCMenu,你必須在 BtnST.h中加入下面二行:

#define BTNST_USE_BCMENU
#include "BCMenu.h"

  當然,你也必須在你的工程文件中加入下面的頭文件:

BCMenu.h
BCMenu.cpp 

  注意:當 BCMenu 使參數可用時,與用SetNenu的方法是不同的! 從v3.6版本開始, CbuttonST可以在特殊的按鈕播放聲音。為了能夠讓它播放聲音要在 BtnST.h 中加入:

#define BTNST_USE_SOUND

  這樣是為了使用SetSound 方法。用靜態方法創建一個 CButtonST 用對話框編輯器中建一個標准的button,例如IDOK(你不需在自己動手創建),你可以用一個變量來創建這個button:

CButtonST m_btnOk;

  現在你可以把這個 button 和 CbuttonST 連接在一起。在你的基於對話框的程序,在OnInitDialog:

  

// Call the base-class method
CDialog::OnInitDialog();
// Create the IDOK button
m_btnOk.SubclassDlgItem(IDOK, this);
Or in your DoDataExchange:
// Call the base method
CDialog::DoDataExchange(pDX);
// Create the IDOK button
DDX_Control(pDX, IDOK, m_btnOk);
  用動態方法創建一個CButtonST 在人的程序中,為button創建一個變量。注意,這個變量的類型是指針:
CButtonST* m_pbtnOk;
現在創建button。在你的基於對話框的程序,在OnInitDialog:
// Call the base-class method
CDialog::OnInitDialog();
// Create the IDOK button
m_pbtnOk = new CButtonST;
m_pbtnOk->Create(_T("&Ok"),
          WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP,
          CRect(10, 10, 200, 100), this, IDOK);
// Set the same font of the application
m_pbtnOk->SetFont(GetFont());
記住銷毀這個指針,否則將會導致內存洩漏.這個也可以容易的實現,例如,在你的類中銷毀它:
if (m_pbtnOk) delete m_pbtnOk;

  類的方法:

SetIcon(using multi-size resources)

  給你的button指定圖標。任何本來就有的圖標或位圖將會被刪除。

  參數:

// Parameters:
//   [IN]  nIconIn
//      圖標資源的ID,當你的鼠標放在按鈕上顯示該圖標.如果為空,則將刪除任何圖標。
//   [IN]  nCxDesiredIn
//      指定加載圖標的寬度,像素
//   [IN]  nCyDesiredIn
//      指定加載圖標的高度,像素
//   [IN]  nIconOut
//      圖標資源的ID,當你的鼠標在不在按鈕內時,顯示圖標.可以為空.
//      如果指定這個參數的值為 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
//      同時改變灰度級.
//      如果指定這個參數的值為 BTNST_AUTO_DARKER (cast to int)第二個圖標將從 nIconIn 自動地創建,
//      灰度級為它的25%的.
//   [IN]  nCxDesiredOut
//      指定加載圖標的寬度,像素
//   [IN]  nCyDesiredOut
//      指定加載圖標的高度,像素
//
// 返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDRESOURCE
//     加載指定資源失敗
//
DWORD SetIcon(int nIconIn, int nCxDesiredIn, int nCyDesiredIn,
       int nIconOut = NULL, int nCxDesiredOut = 0, int nCyDesiredOut = 0)
SetIcon (using resources)
給你的button指定圖標. 任何本來就有的圖標或位圖將會被刪除.
// Parameters:
//   [IN]  nIconIn
//      圖標資源的ID,當你的鼠標放在按鈕上顯示該圖標.如果為空,則將刪除任何圖標。
//   [IN]  nIconOut
//      圖標資源的ID,當你的鼠標在不在按鈕內時,顯示圖標.可以為空.
//      如果指定這個參數的值為 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
//      同時改變灰度級。如果指定這個參數的值為 BTNST_AUTO_DARKER (cast to int)第二個圖標將從
//      nIconIn 自動地創建,灰度級為它的25%的.
//返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDRESOURCE
//     加載指定資源失敗
//
DWORD SetIcon(int nIconIn, int nIconOut = NULL)
SetIcon (using handles)
給你的button指定圖標. 任何本來就有的圖標或位圖將會被刪除.
// Parameters:
//   [IN]  hIconIn
//      圖標的句柄,鼠標放在按鈕上顯示該圖標.如果為空,則將刪除任何圖標。.
//   [IN]  hIconOut
//      圖標的句柄,當你的鼠標在不在按鈕內時,顯示圖標.可以為空.
//      如果指定這個參數的值為 BTNST_AUTO_GRAY (cast to int)第二個圖標將從 nIconIn 自動地創建,
//      同時改變灰度級。如果指定這個參數的值為 BTNST_AUTO_DARKER (cast to int)第二個圖標將從
       nIconIn 自動地創建,灰度級為它的25%的.
//返回值:
//   BTNST_OK
//   函數成功執行
//   BTNST_INVALIDRESOURCE
//     加載指定資源失敗
//
DWORD SetIcon(HICON hIconIn, HICON hIconOut = NULL)
SetBitmaps (using resources)
給你的button指定位圖. 任何本來就有的圖標或位圖將會被刪除.
// Parameters:
//   [IN]  nBitmapIn
//     位圖資源的ID,當你的鼠標放在按鈕上顯示該位圖.如果為空,則將刪除任何位圖.
//   [IN]  crTransColorIn
//      顏色(inside nBitmapIn)將被用於透明色.
//   [IN]  nBitmapOut
//      位圖資源的ID,當你的鼠標在不在按鈕內時,顯示位圖.可以為空
//   [IN]  crTransColorOut
//      顏色(inside nBitmapOut)將被用於透明色.
// 返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDRESOURCE
//   加載指定資源失敗
//   BTNST_FAILEDMASK
//    創建mask bitmap失敗
//
DWORD SetBitmaps(int nBitmapIn,
         COLORREF crTransColorIn,
         int nBitmapOut = NULL,
         COLORREF crTransColorOut = 0)
SetBitmaps (using handles)
給你的button指定位圖. 任何本來就有的圖標或位圖將會被刪除.
// Parameters:
//   [IN]  hBitmapIn
//     位圖資源的句柄,當你的鼠標放在按鈕上顯示該位圖.如果為空,則將刪除任何位圖.
//   [IN]  crTransColorIn
//      顏色(inside nBitmapIn)將被用於透明色.
//   [IN]  hBitmapOut
//      位圖資源的句柄,當你的鼠標在不在按鈕內時,顯示位圖.可以為空
//   [IN]  crTransColorOut
//      顏色(inside nBitmapOut)將被用於透明色.
//
// 返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDRESOURCE
//   加載指定資源失敗
//   BTNST_FAILEDMASK
//    創建mask bitmap失敗
//
DWORD SetBitmaps(HBITMAP hBitmapIn,
    COLORREF crTransColorIn,
    HBITMAP hBitmapOut = NULL,
    COLORREF crTransColorOut = 0)
SetFlat
設置button為一個標准平滑的樣式 
// Parameters:
//   [IN]  bFlat
//      如果為TRUE按鈕是平滑的樣式否則為標准的樣式.缺省為TRUE。
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//返回值:
//   BTNST_OK
//     函數成功執行
//
DWORD SetFlat(BOOL bFlat = TRUE, BOOL bRepaint = TRUE)
SetAlign
設置icon/bitmap各text 之間的綁定方式.
// Parameters:
//   [IN]  byAlign
//      綁定方式.可以是下面的值:
//      ST_ALIGN_HORIZ     Icon/bitmap 在左, text 在右
//      ST_ALIGN_VERT      Icon/bitmap 在上, text 在下
//      ST_ALIGN_HORIZ_RIGHT  Icon/bitmap 在右, text 在左
//      ST_ALIGN_OVERLAP    Icon/bitmap 和 text 同一位置
//      缺省為 ST_ALIGN_HORIZ.
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
// 返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDALIGN
//    綁定失敗.
//
DWORD SetAlign(BYTE byAlign, BOOL bRepaint = TRUE)
SetTextAlign
在text內設置不同的方式
// Parameters:
//   [IN]  byTextAlign
//      綁定方式.可以是下面的值:
//      ST_TEXTALIGN_CENTER_VCENTER    水平,垂直,中心
//      ST_TEXTALIGN_LEFT_VCENTER     靠左,垂直,中心
//      缺省為ST_TEXTALIGN_CENTER_VCENTER
//      ST_TEXTALIGN_RIGHT_VCENTER    靠右,垂直,中心
//      但在checkboxes 或 radiobuttons 中缺省為ST_TEXTALIGN_LEFT_VCENTER.
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
// 返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDALIGN
//    綁定失敗.
//
DWORD SetTextAlign(BYTE byTextAlign, BOOL bRepaint = TRUE)
SetPressedStyle
設置下壓方式.
// Parameters:
//   [IN]  byStyle
//      下壓方式,可以是下面的值:
//      BTNST_PRESSED_LEFTRIGHT  從左到右     BTNST_PRESSED_TOPBOTTOM  從上到下
//      缺省為 BTNST_PRESSED_LEFTRIGHT.
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
//返回值:
//   BTNST_OK
//    函數成功執行
//   BTNST_INVALIDPRESSEDSTYLE
//    下壓方式不支持.
//
DWORD SetPressedStyle(BYTE byStyle, BOOL bRepaint = TRUE)
SetCheck
設置checkbox狀態.
button 必須是一個 checkbox.
// Parameters:
//   [IN]  nCheck
//      1 表示選中.
//      0 表示沒有選中
//   [IN]  bRepaint
//    如果為TRUE 將被重置
//
// 返回值:
//   BTNST_OK
//    函數成功執行.
//
DWORD SetCheck(int nCheck, BOOL bRepaint = TRUE)
GetCheck
返回當前checkbox狀態. button 必須是一個 checkbox.
//返回值:
//   當前checkbox狀態.
//    1 被選中
//    0 沒有被選中或button不是一個checkbox.
//
int GetCheck()
SetDefaultColors
設置缺省顏色值
// Parameters:
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
//返回值:
//   BTNST_OK
//    函數成功執行
//
DWORD SetDefaultColors(BOOL bRepaint = TRUE)
SetColor
設置特殊狀態下的顏色值
// Parameters:
//   [IN]  byColorIndex
//      要設置的顏色值的索引,可以是下面的值:
//      BTNST_COLOR_BK_IN    鼠標滑過時背景色
//      BTNST_COLOR_FG_IN    鼠標滑過時文本色   
//      BTNST_COLOR_BK_OUT   鼠標不在按鈕內的背景色
//      BTNST_COLOR_FG_OUT   鼠標不在按鈕內的背景色
//      BTNST_COLOR_BK_FOCUS  焦點在按鈕上,背景色
//      BTNST_COLOR_FG_FOCUS  焦點在按鈕上,文本色
//   [IN]  crColor
//      新顏色
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
//返回值:
//   BTNST_OK
//    函數成功執行.
//   BTNST_INVALIDINDEX
//    錯誤的植.
//
DWORD SetColor(BYTE byColorIndex, COLORREF crColor, BOOL bRepaint = TRUE)
GetColor
返回特殊狀態下的顏色值.
// Parameters:
//   [IN]  byColorIndex
//      顏色值索引
//   [OUT] crpColor
//      指向想要查詢的COLORREF.
//
//返回值:
//   BTNST_OK
//    函數成功執行.
//   BTNST_INVALIDINDEX
//    錯誤的植.
//
DWORD GetColor(BYTE byColorIndex, COLORREF* crpColor)
OffsetColor
該函數用於設置RGB值。
// Parameters:
//   [IN]  byColorIndex
//      設置的顏色值的索引.
//      看SetColor函數中顏色列表.
//   [IN]  shOffsetColor
//       -255到255之間
//   [IN]  bRepaint
//      如果為TRUE 將被重置
//
// 返回值:
//   BTNST_OK
//    函數成功執行.
//   BTNST_INVALIDINDEX
//    錯誤的植.
//   BTNST_BADPARAM
//    超出范圍
//
DWORD OffsetColor(BYTE byColorIndex, short shOffset, BOOL bRepaint = TRUE)

本文示例代碼或素材下載

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