和GUI有關的各種物件 (轉)
在中有各種GUI物件(不要和C++物件混淆),當你在進行繪圖就需要利用這些物件。而各種物件都擁有各種屬性,下面分別講述各種GUI物件和擁有的屬性。
字型物件CFont用於輸出文字時選用不同風格和大小的字型。可選擇的風格包括:是否為斜體,是否為粗體,字型名稱,是否有下劃線等。顏色和背景色不屬於字型的屬性。關於如何建立和使用字型在2.2 在視窗中輸出文字中會詳細講解。
刷子CBrush物件決定填充區域時所採用的顏色或模板。對於一個固定色的刷子來講它的屬性為顏色,是否採用網格和網格的型別如水平的,垂直的,交叉的等。你也可以利用8*8的點陣圖來建立一個自定義模板的刷子,在使用這種刷子填充時會利用點陣圖逐步填充區域。關於如何建立和使用刷子在2.3 使用刷子,筆進行繪圖中會詳細講解。
畫筆CPen物件在畫點和畫線時有用。它的屬性包括顏色,寬度,線的風格,如虛線,實線,點劃線等。關於如何建立和使用畫筆在2.3 使用刷子,筆進行繪圖中會詳細講解。
點陣圖CBitmap物件可以包含一幅影像,可以儲存在資源中。關於如何使用點陣圖在2.4 在視窗中繪製裝置相關點陣圖,圖示,裝置無關點陣圖中會詳細講解。
還有一種特殊的GUI物件是多邊形,利用多邊形可以很好的限制作圖區域或是改變視窗外型。關於如何建立和使用多邊形在2.6 多邊形和剪貼區域中會詳細講解。
在Windows中使用GUI物件必須遵守一定的規則。首先需要建立一個合法的物件,不同的物件建立方法不同。然後需要將該GUI物件選入DC中,同時儲存DC中原來的GUI物件。如果選入一個的物件將會引起異常。在使用完後應該恢復原來的物件,這一點特別重要,如果儲存一個臨時物件在DC中,而在臨時物件被銷燬後可能引起異常。有一點必須注意,每一個物件在重新建立前必須銷燬,下面的程式碼演示了這一種的使用方法:
OnDraw(CDC* pDC) {
CPen pen1,pen2;
pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//建立物件
pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//建立物件
CPen* pPenOld=(CPen*)pDC->(&pen1);//選擇物件進DC
drawWithPen1...
(CPen*)pDC->SelectObject(&pen2);//選擇物件進DC
drawWithPen2...
pen1.DeleteObject();//再次建立前先銷燬
pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次建立物件
(CPen*)pDC->SelectObject(&pen1);//選擇物件進DC
drawWithPen1...
pDC->SelectObject(pOldPen);//恢復
}
此外系統中還擁有一些庫存GUI物件,你可以利用CDC::SelectStockObject(SelectStockObject( int nIndex )選入這些物件,它們包括一些固定顏色的刷子,畫筆和一些基本字型。
- BLACK_BRUSH Black brush.
- DKGRAY_BRUSH Dark gray brush.
- GRAY_BRUSH Gray brush.
- HOLLOW_BRUSH Hollow brush.
- LTGRAY_BRUSH Light gray brush.
- NULL_BRUSH Null brush.
- WHITE_BRUSH White brush.
- BLACK_PEN Black pen.
- NULL_PEN Null pen.
- WHITE_PEN White pen.
- ANSI_FIXED_FONT ANSI fixed system font.
- ANSI_VAR_FONT ANSI variable system font.
- DEVICE_DEFAULT_FONT Device-dependent font.
- OEM_FIXED_FONT OEM-dependent fixed font.
- SYSTEM_FONT The system font. By default, Windows uses the system font to draw menus, dialog-box controls, and other text. In Windows versions 3.0 and later, the system font is proportional width; earlier versions of Windows use a fixed-width system font.
- SYSTEM_FIXED_FONT The fixed-width system font used in Windows prior to version 3.0. This object is available for compatibility with earlier versions of Windows.
- DEFAULT_PALETTE Default color palette. This palette consists of the 20 static colors in the system palette.
大家可能都注意到了繪圖時都需要一個DC物件,DC(Device Context裝置環境)物件是一個抽象的作圖環境,可能是對應螢幕,也可能是對應印表機或其它。這個環境是裝置無關的,所以你在對不同的裝置輸出時只需要使用不同的裝置環境就行了,而作圖方式可以完全不變。這也就是Windows耀眼的一點裝置無關性。如同你將對一幅畫使用照相機或影印機將會產生不同的輸出,而不需要對畫進行任何調整。DC的使用會穿插在本章中進行介紹。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-960752/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cmsis和各種庫的關係
- 有關石油的各種遊戲:操作方式和內容的不同訴求遊戲
- 有關js各種陣列遍歷JS陣列
- Java獲取Spring的各種物件JavaSpring物件
- 各種型別的API介面,應有盡有型別API
- Java中的各種關鍵字Java
- 各種語言的介紹(轉)
- js建立物件的各種方法以及優缺點JS物件
- [Python] 各種轉換Python
- 各種MySQL程式概述(轉)MySql
- 關於SQL Server tempdb 的各種操作SQLServer
- python時間戳和時間字串的各種轉換Python時間戳字串
- 關於CSS和JS中用到的各種Height和Width的問題CSSJS
- C和C++篇——各種各樣的函式C++函式
- javascript物件的property和prototype是這樣一種關係JavaScript物件
- JSP簡介以及各種內建物件的用法JS物件
- Oracle中Date的各種格式轉換Oracle
- 玩轉陣列各種方法陣列
- 揭露Windows中各種不Ň(轉)Windows
- Electron 的 GUI 和 Ruby 的 CLI 的一種互動實踐GUI
- JavaScript物件的建立方式有幾種?JavaScript物件
- 7種有關電子郵件的錯誤想法 (轉)
- spring和Mybatis的各種查詢SpringMyBatis
- 關於雲控系統的各種細節
- 關於Android中各種尺寸的總結Android
- 用愚公移山說明Javascript建立物件的各種姿勢JavaScript物件
- IINA for Mac:輕鬆播放和轉換各種媒體格式Mac
- 關於 js 物件 轉 字串 和 深拷貝 的 探討JS物件字串
- MySQL中各種欄位的取值範圍(轉)MySql
- 駭客系列教程之脫殼的各種方法(轉)
- [轉載]javascript建立物件的幾種方式JavaScript物件
- jquery物件和DOM物件的互相轉換jQuery物件
- 程式猿的年終總結,各種版本各種殘
- iOS開發中各種關鍵字的區別iOS
- 關於Java中各種修飾符與訪問修飾符的說明 (轉)Java
- jQuery物件和DOM物件和字串之間的轉化jQuery物件字串
- python 各種時間格式轉化Python
- 紅旗桌面工具大全(原始碼盤和各種安裝盤)(轉)原始碼