CBitmapButton 類
創建位圖圖像替代文本標記的按鈕控件。
Class CBitmapButton : public CButton
備注
CBitmapButton 對象包含多達四個位圖,為按鈕的不同狀態包含圖像:up(or normal),down(or selected),focused,和disabled
。只有第一個位圖是必須的;其他都是可以選擇的。
位圖按鈕(Bitmap-button)圖像包括圖像的邊框以及圖像本身。邊框通常扮演部分顯示按鈕的狀態。例如,focused狀態下的位圖通
常和up狀態下的一樣,但是它的邊框是矩形虛線或者粗實線。disabled狀態下的位圖通常類似于up狀態但是對比度較低(如暗灰色
或者灰色菜單選擇)。
這些位圖可以是任意大小,但是對于up狀態它們都被視為同樣大小。
各種應用要求位圖圖像的不同組合:
Up Down Focused Disabled 應用
* 位圖
* * 沒有WS_TABSTOP樣式的按鈕
* * * * 帶有所有狀態的對話框按鈕
* * * 帶有WS_TABSTOP樣式的對話框按鈕
當創建一個位圖按鈕控件,設置BS_OWNERDRAW樣式指定按鈕為自己繪制的。這使Windows為按鈕發送WM_MEASUREITEM和WMDRAWITEM
消息。框架為你處理這些消息和管理按鈕的外觀。
在windows客戶區域創建位圖按鈕控件
1、為按鈕創建一到四個位圖。
2、構建CBitmapButton對象。
3、調用Create函數創建按鈕控件,然后附加到CBitmapButton對象上。
4、當位圖按鈕構造好后,調用LoadBitmaps成員函數來加載位圖資源。
一個對話框中包括一個位圖按鈕
1、為按鈕創建一到四個位圖。
2、創建一個帶有自繪(owner-draw)按鈕的對話框模板,按鈕放置在你想要的位圖按鈕的地方。
3、設置按鈕的caption為"MYIMAGE",按鈕定義符號為IDC_MYIMAGE。
4、在你應用程序的資源腳本中,在步驟3中為每個為按鈕創建的圖形設置標題為ID加一個字母,"U","D","F",或者"X"(對應于up,down,focused,和disabled)的字符串。例如,像標題為"MYIMAGE"的按鈕,它們的ID為"MYIMAGEU","MYIMAGED","MYIMAGEF",和"MYIMAGEX."你必須指定位圖的ID要有雙引號。否則資源編譯器將制定一個整數的資源,那么MFC在加載圖片時就會失敗。
5、在你的應用程序的對話框類(繼承自CDialog)中,增加一個CBitmapButton成員對象。
6、在CDialog對象的OnInitDialog例程中,調用CBitmapButton對象的AutoLoad函數,按鈕控件的ID和CDialog對象的指針作為參數。
如果你想處理窗口信息,像BN_CLICKED,位圖按鈕控件發送給它的父(通常是一個從CDialog派生的類),為CDialog派生對象增加一個消息映射入口,和每個消息處理成員函數。CBitmapButton對象發送的通知跟CButton是一樣的。
類CToolBar對位圖按鈕采用不同的方法。
更多關于CBitmapButton的信息,參考Controls。
要求
頭文件:afxext.h
參考
CTLRLTEST sample:Implements Custom Controls
CBitmapButton Members
CButton Class
Hierarchy Chart
原文:
http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v=vs.90).aspx
posted on 2012-03-22 10:36
canaan 閱讀(1822)
評論(0) 編輯 收藏 引用 所屬分類:
MSDN