GetObject 函式(wingdi.h)

GetObject 函式會取得指定圖形物件的資訊。

語法

int GetObject(
  [in]  HANDLE h,
  [in]  int    c,
  [out] LPVOID pv
);

參數

[in] h

一個指向感興趣圖形物件的帳號。 這可以是以下其中一種的代言人:邏輯位圖、筆刷、字型、調色盤、筆,或是透過呼叫 CreateDIBSection 函式建立的裝置無關點陣圖。

[in] c

要寫入緩衝區的資訊位元組數。

[out] pv

一個指向緩衝區的指標,接收指定圖形物件的資訊。

下表顯示緩衝區在每種圖形物件類型下接收到的資訊類型,這些物件可使用 hgdiobj 指定。

物件類型 寫入緩衝區的資料
HBITMAP

點陣圖

HBITMAP 從向 CreateDIBSection 的呼叫回覆

如果 cbBuffer 設 sizeof (DIBSECTION)為 ,則表示 DIBSECTION;若 cbBuffersizeof (BITMAP)設為 ,則表示 BITMAP。

HPALETTE
邏輯調色盤中條目數量的 字 數計數
HPEN 從 ExtCreatePen 的電話中回覆

埃斯特洛格彭

HPEN

洛彭

HBRUSH

原木刷

HFONT

LOGFONT 字體

 

若 lpvObject 參數為 NULL,函式回傳值即為儲存該指定圖形物件緩衝區所寫入資訊所需的位元組數。

lpvObject 的位址必須位於 4 位元組的邊界上;否則,GetObject 會失敗。

返回值

若函式成功且 lpvObject 為有效指標,回傳值即為緩衝區中儲存的位元組數。

若函式成功且 lpvObject 為 NULL,回傳值即為儲存該函式將儲存在緩衝區資訊所需的位元組數。

如果函式失敗,傳回值為零。

備註

lpvObject 參數所指向的緩衝區必須足夠大,才能接收關於該圖形物件的資訊。 根據圖形物件的不同,函式會使用 BITMAP、DIBSECTION、EXTLOGPEN、LOGBRUSH、LOGFONT 或 LOGPEN 結構,或是以表格條目數量(用於邏輯調色盤)。

若 hgdiobj 是呼叫 CreateDIBSecion 所建立點陣圖的代言人,且指定的緩衝區足夠大, GetObject 函式會回傳一個 DIBSECTION 結構。 此外,DIBSECTION 中 BITMAP 結構中的 bmBits 成員會包含指向位圖位元值的指標。

如果 hgdiobj 是以其他方式建立的位圖的 handle,GetObject 只會回傳該位圖的寬度、高度和顏色格式資訊。 你可以透過呼叫 GetDIBits 或 GetBitMapBits 函式來取得位元圖的位元值。

若 hgdiobj 是邏輯調色盤的 handle,GetObject 會取得一個 2 位元組的整數,該整數指定調色盤中的項目數量。 此函式不會擷取定義調色盤的 LOGPALETTE 結構。 為了取得調色盤條目的資訊,應用程式可以呼叫 GetPaletteEntries 函式。

如果 hgdiobj 是字型的 handle,則回傳的 LOGFONT 就是用來建立該字型的 LOGFONT 。 如果 Windows 必須對字型做插值,因為無法精確表示 LOGFONT ,該插值不會反映在 LOGFONT 中。 舉例來說,如果你要求一個不支援直排繪製的字型, LOGFONT 會顯示該字型是直排,但 Windows 會以水平方式繪製。

範例

舉例請參見 「儲存影像」。

需求

Requirement 價值觀
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
Header wingdi.h (包括 Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

另請參閱

點陣圖

創建DIB保護

分區

裝置情境功能

裝置情境概述

埃斯特洛格彭

GetBitmapBits

GetDIBits

GetPalette項目

取得區域數據

原木刷

LOGFONT 字體

日誌調色板

洛彭