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

CButtonST使用技巧

編輯:vc教程

  CButtonST使我目前見過的最強大,功能最全的CButton派生類。撰寫本文的目的不在於技術的討論,而是希望能夠為各位提供關於CButtonST的使用參考,以提高編寫程序的速度。

  下圖是用CButtonST做的幾個按鈕

  以下是CButtonST類的一些版本信息,方便大家可以及時獲得它的最新版本。

  作者:Davide Calabro

  郵箱地址:[email protected]

  個人主頁:http://www.softechsoftware.it

  CButtonST類主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四個文件。如果你打算使用CButtonST的窗口不止一個,那麼我建議你在VC++的Workspace | FileView中導入以上的四個文件之後,然後在SdtAfx.h文件中添加合適的include語句,如#include "BtnST.h"。

  以下是Basic Features的演示界面:

  效果一:在按鈕上加入Icon,使Icon和文字同時顯示

  假設按鈕ID為IDC_BUTTON1

  1. 添加成員變量

CButtonST  m_btn;
2. 添加Icon資源,設其ID設為IDI_ICON1

  3. 在OnInitDialog函數中初始化按鈕

m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetFlat(FALSE);
注意:為達到最好效果,請根據Icon的大小調整按鈕的大小。

  實例:演示程序中的Standar 按鈕。

  效果二:顯示平面按鈕

  只需要在效果一的基礎上把m_btn.SetFlat(FALSE);語句去掉。

  效果三:使按鈕上的圖標可變

  假設按鈕ID為IDC_BUTTON1

  1. 添加成員變量

CButtonST  m_btn;
2. 添加兩個Icon資源,ID設為IDI_ICON1和IDI_ICON2

  IDI_ICON1是普通狀態的圖標,IDI_ICON2是按下時的圖標

  3. 在OnInitDialog函數中初始化按鈕

m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON2,IDI_ICON1);
實例:演示程序中的Halloween 按鈕。 

  效果四:設置按鈕在不同狀態下的底色和文字顏色

  假設按鈕ID為IDC_BUTTON1

  1. 添加成員變量

CButtonST  m_btn;
2. 添加Icon資源,設其ID設為IDI_ICON1

  3. 在OnInitDialog函數中初始化按鈕

m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
m_btn.OffsetColor(CButtonST::BTNST_COLOR_BK_IN, 30);
提示:SetColor函數和OffsetColor函數的第一個參數表示按鈕的各個狀態,前景色就是文字的顏色,它們的取值表示:
BTNST_COLOR_BK_IN  //鼠標放在按鈕內時的背景色
BTNST_COLOR_FG_IN,  //鼠標放在按鈕內時的前景色
BTNST_COLOR_BK_OUT,  //普通狀態時的背景色  
BTNST_COLOR_FG_OUT,  //普通狀態時的前景色
BTNST_COLOR_BK_FOCUS,  //按鈕被按下後的背景色
BTNST_COLOR_FG_FOCUS,  //按鈕被按下後的前景色
實例:演示程序中的48×48 icon 按鈕、Zip按鈕等。

  效果五:設置圖標和文字的位置

  假設按鈕ID為IDC_BUTTON1

  1.添加成員變量

CButtonST  m_btn;
2.添加Icon資源,ID設為IDI_ICON1

  3.在OnInitDialog函數中初始化按鈕

m_btn.SubclassDlgItem(IDC_BUTTON1,this);
  m_btn.SetIcon(IDI_ICON1);
  m_btn.SetAlign(CButtonST::ST_ALIGN_VERT);
提示:SetAlign函數的第一個參數表示位置信息,缺省情況下,文字在圖標右邊
ST_ALIGN_HORIZ  // 文字在右
ST_ALIGN_VERT  //文字在下
ST_ALIGN_HORIZ_RIGHT// 文字在左
實例:演示程序中的Search 按鈕。

  效果六:根據Icon的形狀設置按鈕的形狀

  假設按鈕ID為IDC_BUTTON1

  1.添加成員變量

CButtonST  m_btn;
2.添加Icon資源,設其ID設為IDI_ICON1

  3.在OnInitDialog函數中初始化按鈕

m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.DrawBorder(FALSE);
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_OUT, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_IN, RGB(208,208,208));
m_btn.SetColor(CButtonST::BTNST_COLOR_BK_FOCUS, RGB(208,208,208));
注意:為達到最好效果,請根據Icon的大小調整按鈕的大小。

  並根據實際情況設置背景顏色。請事先將按鈕的文字去掉。

本文示例代碼或素材下載

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