CBitmapButton的使用

來源:互聯網
上載者:User


       CBitmapButton作為MFC的控制項類,並不為很多人所使用,因為現在網上遍布著從CButton派生的各種各樣的按鈕類,其中最為著名的就是CButtonST類了。但是最近在CSDN上看到幾個問題都是使用CBitmapButton類,但是由於使用錯誤、不當而造成程式崩潰或者錯誤的。所以總結一下CBitmapButton類的使用,希望能協助一些初學者。
       可以參考MSDN內建的例子“CTRLTEST”學習CBitmapButton的用法。個人總結如下: 
1、在資源編輯的時候選中按鈕的Owner  draw即可,不需要選擇Bitmap屬性! 
2、在程式中定義一個CBitmapButton成員變數。不能使用ClassWizard為按鈕映射一個CButton變數,然後改為CBitmapButton,這麼做並不能將按鈕直接映射為CBitmapButton類的對象,反而會出現初始化錯誤。 
3-1、使用CBitmapButton::LoadBitmaps裝載各種狀態的圖片,使用SubclassDlgItem關聯到想要的按鈕,使用CBitmapButton::SizeToContent函數使按鈕適合圖片大小。。注意Loadbitmaps一定要在關聯到按鈕之前進行! 
3-2、或者是使用CBitmapButton::AutoLoad函數關聯到想要的按鈕。需要注意:
A、之前不能使用CBitmapButton::LoadBitmaps裝載各種狀態的圖片,否則會出錯。
B、AutoLoad函數完成的關聯和改變按鈕大小的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的一部分。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.