與GUI有關的各種對象
發(fā)表時間:2024-02-06 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在Windows中有各種GUI對象(不要和C++對象混淆),當你在進行繪圖就需要利用這些對象。而各種對象都擁有各種屬性,下面分別講述各種GUI對象和擁有的屬性! ∽煮w對象CFont用于輸出文字時選用不同風格和大小的字體。可選擇的風格包括:是否為斜體,是否為粗體,字體名稱,是否有下劃線等。顏色和背...
在Windows中有各種GUI對象(不要和C++對象混淆),當你在進行繪圖就需要利用這些對象。而各種對象都擁有各種屬性,下面分別講述各種GUI對象和擁有的屬性。
字體對象CFont用于輸出文字時選用不同風格和大小的字體?蛇x擇的風格包括:是否為斜體,是否為粗體,字體名稱,是否有下劃線等。顏色和背景色不屬于字體的屬性。關于如何創(chuàng)建和使用字體在2.2 在窗口中輸出文字中會詳細講解。
刷子CBrush對象決定填充區(qū)域時所采用的顏色或模板。對于一個固定色的刷子來講它的屬性為顏色,是否采用網(wǎng)格和網(wǎng)格的類型如水平的,垂直的,交叉的等。你也可以利用8*8的位圖來創(chuàng)建一個自定義模板的刷子,在使用這種刷子填充時系統(tǒng)會利用位圖逐步填充區(qū)域。關于如何創(chuàng)建和使用刷子在2.3 使用刷子,筆進行繪圖中會詳細講解。
畫筆CPen對象在畫點和畫線時有用。它的屬性包括顏色,寬度,線的風格,如虛線,實線,點劃線等。關于如何創(chuàng)建和使用畫筆在2.3 使用刷子,筆進行繪圖中會詳細講解。
位圖CBitmap對象可以包含一幅圖像,可以保存在資源中。關于如何使用位圖在2.4 在窗口中繪制設備相關位圖,圖標,設備無關位圖中會詳細講解。
還有一種特殊的GUI對象是多邊形,利用多邊形可以很好的限制作圖區(qū)域或是改變窗口外型。關于如何創(chuàng)建和使用多邊形在2.6 多邊形和剪貼區(qū)域中會詳細講解。
在Windows中使用GUI對象必須遵守一定的規(guī)則。首先需要創(chuàng)建一個合法的對象,不同的對象創(chuàng)建方法不同。然后需要將該GUI對象選入DC中,同時保存DC中原來的GUI對象。如果選入一個非法的對象將會引起異常。在使用完后應該恢復原來的對象,這一點特別重要,如果保存一個臨時對象在DC中,而在臨時對象被銷毀后可能引起異常。有一點必須注意,每一個對象在重新創(chuàng)建前必須銷毀,下面的代碼演示了這一種安全的使用方法:
OnDraw(CDC* pDC) {
CPen pen1,pen2;
pen1.CreatePen(PS_SOLID,2,RGB(128,128,128));//創(chuàng)建對象
pen2.CreatePen(PS_SOLID,2,RGB(128,128,0));//創(chuàng)建對象
CPen* pPenOld=(CPen*)pDC->SelectObject(&pen1);//選擇對象進DC
drawWithPen1...
(CPen*)pDC->SelectObject(&pen2);//選擇對象進DC
drawWithPen2...
pen1.DeleteObject();//再次創(chuàng)建前先銷毀
pen1.CreatePen(PS_SOLID,2,RGB(0,0,0));//再次創(chuàng)建對象
(CPen*)pDC->SelectObject(&pen1);//選擇對象進DC
drawWithPen1...
pDC->SelectObject(pOldPen);//恢復
}
此外系統(tǒng)中還擁有一些庫存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中GUI對象。
大家可能都注意到了繪圖時都需要一個DC對象,DC(Device Context設備環(huán)境)對象是一個抽象的作圖環(huán)境,可能是對應屏幕,也可能是對應打印機或其它。這個環(huán)境是設備無關的,所以你在對不同的設備輸出時只需要使用不同的設備環(huán)境就行了,而作圖方式可以完全不變。這也就是Windows耀眼的一點設備無關性。如同你將對一幅畫使用照相機或復印機將會產生不同的輸出,而不需要對畫進行任何調整。DC的使用會穿插在本章中進行介紹。