Tuesday, March 10, 2009

Win32 GDI: 取得裝置內容代碼 GetDC

圖形裝置介面 (GDI: Graphics Device Interface) 是 Windows 的子系統, 負責在螢幕或印表機上顯示圖形。Windows GDI 由幾百個函式呼叫組成, 也定義了相關的資料形態, 結構與巨集。

當我們想要在一個圖形輸出設備上繪圖, 或是做一些基本操作時, 首先我們必須要先獲得一個裝置內容(device context)的代碼。

取得顯示裝置代碼(display device context)的方式之一就是使用 GetDC 指令。

當 Windows 將顯示裝置代碼傳回給程式的同時, 也給了我們使用該顯示裝置的許可權限, 之後程式便是透過這個代碼告訴 Windows 要在這個裝置上進行繪圖, 因此, 這個代碼也將成為 GDI 函式中的一個輸入參數。

The GetDC function retrieves a handle of a display device context (DC) for the client area of the specified window. The display device context can be used in subsequent GDI functions to draw in the client area of the window.

This function retrieves a common, class, or private device context depending on the class style specified for the specified window. For common device contexts, GetDC assigns default attributes to the device context each time it is retrieved. For class and private device contexts, GetDC leaves the previously assigned attributes unchanged.

HDC GetDC(
HWND hWnd // handle of window
);

Parameters

hWnd

Identifies the window whose device context is to be retrieved.

Return Values

If the function succeeds, the return value identifies the device context for the given window's client area. If the function fails, the return value is NULL.

Remarks

After painting with a common device context, the ReleaseDC function must be called to release the device context. Class and private device contexts do not have to be released. The number of device contexts is limited only by available memory.

 

No comments:

Post a Comment