程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 和GUI有關的各種對象

和GUI有關的各種對象

編輯:關於C語言

 

在Windows中有各種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->SelectObject(&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.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved