CBitmapButton::AutoLoad自繪按鈕圖形

一, 自繪按鈕圖形

方法一:

1、  在資源編輯的時候選中按鈕的 Owner draw 屬性,改爲true.
2、  在程序中定義一個CBitmapButton成員變量。
     注意:不能使用ClassWizard爲按鈕映射一個CButton變量,然後改爲CBitmapButton,
     這麼做並不能將按鈕直接映射爲CBitmapButton類的對象,反而會出現初始化錯誤
3、  使用CBitmapButton::LoadBitmaps裝載各種狀態的圖片,
     使用CBitmapButton::SubclassDlgItem 關聯到想要的按鈕,
     使用 CBitmapButton::SizeToContent函數使按鈕適合圖片大小。
     注意Loadbitmaps一定要在關聯到按鈕之前進行!

     附:添加資源Bitmap的方法:Insert菜單-->Resource -->Resource type:Bitmap-->Import, 
           之後選擇所需的圖片就可以了
方法一的例子:
    首先,選中按鈕的owner Draw屬性,在資源中加載兩副*.bmp 格式的位圖,
   然後在對話框類中加入:

Code---

CBitmapButton m_btnX1;
//定義變量,必須放在函數外面才能正常實現

BOOL CXXXXXXX::OnInitDialog()
{
CDialog::OnInitDialog(); 
m_btnX1.LoadBitmaps(IDB_XXXX_UP,IDB_XXXX_DOWN);
//這裏是兩副位圖,鼠標按下和彈起,也可以只加一個ID資源;
  m_btnX1.SubclassDlgItem(IDC_DASEN_X1,this);
          m_btnX1.SizeToContent();
}

方法二:使用CBitmapButton::AutoLoad函數關聯到想要的按鈕

A、使用CBitmapButton::AutoLoad函數之前不能使用CBitmapButton::LoadBitmaps裝載
  各種狀態的圖片,否則會出錯。
B、AutoLoad函數完成關聯和改變按鈕大小的功能。類似於上面 CBitmapButton::SubclassDlgItem
   和 CBitmapButton::SizeToContent函數的功能。
C、 CBitmapButton::AutoLoad使用的位圖是默認資源ID的,即它會自動裝載相關資源位圖。
  位圖的資源ID格式爲:
  "按鈕Caption+U"、"按鈕Caption+D"、"按鈕Caption+F"、"按鈕Caption+X",
  分別代表Up、Down、Focus、Disable狀態。
  如資源編輯時,希望關聯的按鈕的Caption爲Test,
  那麼其默認裝載的位圖資源的ID爲:"TestU"/"TestD"/"TestF"/"TestX",
  注意分號""也是其ID的一部分。
方法二例子:
首先,選中按鈕的 Owner Draw屬性爲true
其次,添加兩個位圖資源,並修改其ID分別 爲:"myBitmapButtonU"和"myBitmapButtonD",這裏只添加兩個位圖
然後在對話框類中加入:

  CBitmapButton m_btnX1;//必須放在函數外面才能正常實現
BOOL CXXXXXXX::OnInitDialog()
{
CDialog::OnInitDialog();
m_btnX1.AutoLoad(IDC_BUTTON1,this);//ID爲IDC_BUTTON1的按鈕即爲你需要自繪的按鈕
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章