《Windows 程式設計》學習筆記(五) (轉)
第五章 圖形基礎(一)-----基礎知識
前面幾章涉及了一些在視窗客戶繪製圖形的知識和運用,本章比較詳細的講解了圖形繪製的基本原理和運用。
提供了幾百個GDI,我們透過GDI函式在Windows上進行各種繪圖操作。GDI使我們的繪圖與裝置無關,也就是說可以在Windows支援的任意一種輸出裝置上繪圖而不用考慮這些裝置的特性。
幾乎每一個GDI函式都需要一個裝置環境(DC)的控制程式碼作為引數,裝置環境中包括許多確定GDI函式如何在裝置上工作的當前屬性,比如:字型,文字色,線的顏色,線的粗細等。要獲得裝置環境中的這些資訊,可以用GetDeviceCaps()函式。
每一個繪圖的過程都是如下面的順序來進行的:
獲取一個裝置環境控制程式碼 ----> 利用裝置環境控制程式碼和GDI函式進行繪圖 ----> 釋放裝置環境控制程式碼
Windows提供了幾種獲取和釋放裝置環境控制程式碼的方法:
A)在處理WM_PAINT時
hdc = BeginPaint(hwnd, &ps);
[ other program lines ]
EndPaint(hwnd, &ps);(在前面的章節經常用到)
B)在處理非WM_PAINT時
hdc = GetDC(hwnd);
[ other program lines ]
ReleaseDC(hwnd, hdc);
C)獲得整個視窗的裝置環境控制程式碼
hdc = GetWindowDC(hwnd);
[ other program lines ]
ReleaseDC(hwnd, hdc);
D)獲得整個螢幕的裝置環境控制程式碼
hdc = CreateDc(TEXT("DISPLAY", NULL, NULL, NULL);
E)只獲取整個螢幕的裝置環境控制程式碼而不繪圖
hdc = CreateIC(TEXT("DISPLAY", NULL, NULL, NULL);
某些情況下,我們需要改變某些裝置環境的屬性,用改變後的屬性進行繪圖,然後恢復原來的裝置環境。可以透過下面的函式來儲存現在的裝置環境:
idSaved = SaveDC(hdc);
然後用下面的函式恢復原來的裝置環境:
RestoreDC(hdc, idSaved);
或者用下面的方法實現同樣的功能:
SaveDC(hdc);
RestoreDC(hdc, -1);
Windows提供了一些GDI(畫筆,刷子等),我們可以建立這些物件把它們選入裝置環境中,Windows就可以用這些物件繪製各種圖形了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1003895/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《Windows 程式設計》學習筆記(四) (轉)Windows程式設計筆記
- 《Windows 程式設計》學習筆記(三) (轉)Windows程式設計筆記
- Windows 95 系統程式設計大奧秘學習筆記 (轉)Windows程式設計筆記
- 四. 文字程式設計--Windows程式設計課程學習筆記程式設計Windows筆記
- 好程式設計師教程分析Vue學習筆記五程式設計師Vue筆記
- <<軟體設計學習筆記>> (轉)筆記
- 網路程式設計學習筆記程式設計筆記
- 系統程式設計學習筆記程式設計筆記
- Linux學習/TCP程式設計學習筆記LinuxTCP程式設計筆記
- Java設計模式學習筆記(五) 單例模式Java設計模式筆記單例
- Windows sdk程式設計筆記Windows程式設計筆記
- Java程式設計思想(2nd)學習筆記(7) (轉)Java程式設計筆記
- Java程式設計思想(2nd)學習筆記(6) (轉)Java程式設計筆記
- Golang 學習筆記——tun/tap 程式設計Golang筆記程式設計
- 結構化程式設計--學習筆記程式設計筆記
- Javascript高階程式設計 學習筆記JavaScript程式設計筆記
- ROS串列埠程式設計學習筆記ROS串列埠程式設計筆記
- spark學習筆記--進階程式設計Spark筆記程式設計
- Linux Shell 程式設計學習筆記Linux程式設計筆記
- 一個C++程式設計師的Delphi學習筆記 (轉)C++程式設計師筆記
- Java程式設計思想(2nd)學習筆記(9)-2 (轉)Java程式設計筆記
- Java程式設計思想(2nd)學習筆記(8)-1 (轉)Java程式設計筆記
- Java程式設計思想(2nd)學習筆記(8)-2 (轉)Java程式設計筆記
- 《Windows核心程式設計》筆記(一)Windows程式設計筆記
- 仿Windows計算器--學習筆記Windows筆記
- JVM 學習筆記(五)JVM筆記
- cmake學習筆記(五)筆記
- Javascript 學習 筆記五JavaScript筆記
- 設計模式學習筆記設計模式筆記
- 學習筆記-設計模式筆記設計模式
- 好程式設計師web前端培訓學習筆記Vue學習筆記一程式設計師Web前端筆記Vue
- 好程式設計師學習筆記:函式程式設計師筆記函式
- Vue學習筆記(九):元件化程式設計Vue筆記元件化程式設計
- nginx學習筆記(6):程式模型的設計Nginx筆記模型
- Java學習筆記--網路程式設計SocketJava筆記程式設計
- 《Mastering Delphi 6》學習筆記之五 (轉)AST筆記
- 好程式設計師web前端培訓學習筆記Vue學習筆記之二程式設計師Web前端筆記Vue
- Node.js 設計模式 學習筆記 之 流程式設計Node.js設計模式筆記程式設計