?? 04.3.2 位圖畫刷.txt
字號:
4.3.2 位圖畫刷
CBrush類有下面這樣一種構造函數。
CBrush( CBitrnap* pBitrnap ); .
該構造函數要求一個 CBitmap類型的指針, CBitmap類是位圖類,于是我們就會這樣想:利用這個構造函數是否就可以創建一個位圖畫刷呢?事實確實如此。
創建 CBitmap對象時,僅調用其構造函數并不能得到一個有用的位圖對象,還需要調用一個初始化函數來初始化這個位圖對象。 CBitmap類提供多個初始化函數,例如, LoadBitmap、 CreateBitmap、 CreateBitmapIndirect等。本例使用 LoadBitmap函數來加載一幅位圖,該函數的聲明如下。
BOOL LoadBitrnap( LPCTSTR lpszResourceNarne ); BOOL LoadBitrnap( U工 NT n工 DResource );
其中第二種聲明需要一個資源E作為參數。首先需要給 Draw程序增加一個位圖資源。
"‘ I 123
單鱔國
為一個工程創建資源有多種實現方法,其中一種方法可以利用【Insert】菜單下的 <Resource..】命令,此時會彈出如圖4.19所示的插入資源對話框。
圖 4.19 Insert Resource對話框
選擇Bitmap資源類型,單擊【New】按鈕,即可創建一個默認名稱為IDB_BITMA凹的位圖資源,井在VC++集成開發環境右邊的代碼編輯區中打開位圖編輯器,如圖4.20所示??梢岳镁庉嬈饔疫叺恼{色板和繪圖工具來編輯位圖資源,還可以通過拉伸位圖編輯器中網格周圍的藍色方點來調整位圖的大小。本例創建了一個如圖4.21所示的位圖資源,讀者可以根據自己的需要創建任意形式的位圖。
圖4.20位圖資源編輯器圖4.21本例使用的位圖資源
另一種創建資源的方法是,利用工具欄上的資源工具欄按鈕(如圖4.22所示)來實現。該工具欄在默認情況下并沒有顯示,可以在VC++開發環境中的工具欄上任意位置單擊鼠標右鍵,從彈出的快捷菜單中選擇Resource(如圖 4.23所示),這時,在 VC++開發環境中就會出現如圖4.22所示的資源工具欄。
創建了位圖資源之后,就可以利用代碼來創建位圖畫刷了,具體的實現代碼如例4-16所示。
圖 4.22資源工具欄 圖 4.23顯示資源工具欄的操作
例4-16
void CDrawView : :OnLButtonUp(U工NT nFlags , CPoint po工nt} { / /創建位圖對象
CBitmap bitmap;
//加載位圖資源
bitmap.LoadBitmap(IDB_BITMAP1} ;
//創建位圖畫刷
CBrush brush(&bitmap} ;
//創建并獲得設備描述表
CClientDC dc(this};
//利用紅色畫刷填充鼠標拖曳過程中形成的矩形區域 dc.FillRect(CRect(m-ptOr工gin,point} , &brush} ;
CView : :OnLButtonUp(nFlags , point} ;
Build并運行Draw程序,然后在程序窗口內拖動鼠標,即可看到利用所創建的位圖畫
刷填充的效果,如圖 4.24所示。
圖 4.24位圖畫刷運行結果
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -