GetDeviceCaps 函式 (wingdi.h)
GetDeviceCaps 函式會擷取指定裝置的裝置特定資訊。
語法
int GetDeviceCaps(
[in] HDC hdc,
[in] int index
);
參數
[in] hdc
DC 的句柄。
[in] index
要傳回的專案。 此參數可以是下列其中一個值。
索引 | 意義 | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
設備驅動器版本。 | ||||||||||||||||||||||||||||||||||
|
裝置技術。 它可以是下列任一值。
如果 hdc 參數是增強型元檔 DC 的句柄,則裝置技術是 CreateEnhMetaFile 函式所指定之參考裝置的句柄。 若要判斷它是否為增強型元檔DC,請使用 GetObjectType 函式。 |
||||||||||||||||||||||||||||||||||
|
實體螢幕的寬度,以公厘為單位。 | ||||||||||||||||||||||||||||||||||
|
實體螢幕的高度,以公厘為單位。 | ||||||||||||||||||||||||||||||||||
|
屏幕的寬度,以像素為單位;或印表機的寬度,以像素為單位的頁面可列印區域。 | ||||||||||||||||||||||||||||||||||
|
螢幕的高度,以點陣線條表示;或印表機的高度,以像素為單位的頁面可列印區域。 | ||||||||||||||||||||||||||||||||||
|
每個邏輯英吋沿著螢幕寬度的像素數。 在具有多個顯示監視器的系統中,所有監視器的這個值都相同。 | ||||||||||||||||||||||||||||||||||
|
每個邏輯英吋沿著螢幕高度的像素數。 在具有多個顯示監視器的系統中,所有監視器的這個值都相同。 | ||||||||||||||||||||||||||||||||||
|
每個像素的相鄰色彩位數目。 | ||||||||||||||||||||||||||||||||||
|
色平面數目。 | ||||||||||||||||||||||||||||||||||
|
裝置特定的筆刷數目。 | ||||||||||||||||||||||||||||||||||
|
裝置特定的手寫筆數目。 | ||||||||||||||||||||||||||||||||||
|
裝置特定字型的數目。 | ||||||||||||||||||||||||||||||||||
|
如果裝置的色彩深度不超過每個圖元 8 位,裝置的色彩表格中的項目數。 對於色彩深度較高的裝置,會傳回 -1。 | ||||||||||||||||||||||||||||||||||
|
用於線條繪製之裝置圖元的相對寬度。 | ||||||||||||||||||||||||||||||||||
|
用於線條繪製之裝置圖元的相對高度。 | ||||||||||||||||||||||||||||||||||
|
用於線條繪製之裝置圖元的對角寬度。 | ||||||||||||||||||||||||||||||||||
|
保留的。 | ||||||||||||||||||||||||||||||||||
|
指出裝置裁剪功能的旗標。 如果裝置可以裁剪成矩形,則為 1。 否則為 0。 | ||||||||||||||||||||||||||||||||||
|
系統選擇區中的項目數。 只有當設備驅動器在 RASTERCAPS 索引中設定RC_PALETTE位,且只有在驅動程式與 16 位 Windows 相容時,才能使用此索引。 | ||||||||||||||||||||||||||||||||||
|
系統選擇區中的保留項目數目。 只有當設備驅動器在 RASTERCAPS 索引中設定RC_PALETTE位,且只有在驅動程式與 16 位 Windows 相容時,才能使用此索引。 | ||||||||||||||||||||||||||||||||||
|
裝置的實際色彩解析度,以每圖元為單位。 只有當設備驅動器在 RASTERCAPS 索引中設定RC_PALETTE位,且只有在驅動程式與 16 位 Windows 相容時,才能使用此索引。 | ||||||||||||||||||||||||||||||||||
|
列印裝置:實體頁面的寬度,以裝置單位為單位。 例如,印表機設定為在8.5-x11英吋紙張上的600 dpi印表,其實體寬度值為5100個裝置單位。 請注意,實體頁面幾乎一律大於頁面的可列印區域,而且永遠不會更小。 | ||||||||||||||||||||||||||||||||||
|
列印裝置:實體頁面的高度,以裝置單位為單位。 例如,印表機設定為在8.5-by11英吋紙張上的600 dpi印表,其實體高度值為6600個裝置單位。 請注意,實體頁面幾乎一律大於頁面的可列印區域,而且永遠不會更小。 | ||||||||||||||||||||||||||||||||||
|
列印裝置:從實體頁面左邊緣到可列印區域左邊緣的距離,以裝置單位為單位。 例如,印表機設定為在8.5到11英吋紙張上的600 dpi印表,無法在最左邊的0.25英吋紙張上列印,其水準實體位移為150個裝置單位。 | ||||||||||||||||||||||||||||||||||
|
列印裝置:從實體頁面的上邊緣到可列印區域上邊緣的距離,以裝置單位為單位。 例如,印表機設定為在8.5-by 11英吋紙張上以600 dpi印表,無法在最上層的0.5英吋紙張上列印,其垂直實體位移為300個裝置單位。 | ||||||||||||||||||||||||||||||||||
|
針對顯示裝置:裝置目前的垂直重新整理速率,以每秒迴圈為單位, (Hz) 。
垂直重新整理速率值 0 或 1 代表顯示硬體的預設重新整理速率。 此預設速率通常是由顯示卡或計算機主機板上的開關設定,或是不是使用 ChangeDisplaySettings 等顯示功能的組態程式所設定。 |
||||||||||||||||||||||||||||||||||
|
印表機 X 軸的縮放比例。 | ||||||||||||||||||||||||||||||||||
|
印表機 Y 軸的縮放比例。 | ||||||||||||||||||||||||||||||||||
|
慣用的水平繪圖對齊方式,以圖元的倍數表示。 為了獲得最佳繪圖效能,視窗應該水平對齊此值的倍數。 值為零表示裝置已加速,而且可以使用任何對齊方式。 | ||||||||||||||||||||||||||||||||||
|
值,表示裝置的底紋和混合功能。 如需進一步的批注,請參閱。
|
||||||||||||||||||||||||||||||||||
|
指出裝置點陣功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指出裝置曲線功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
值,表示裝置的行功能,如下表所示:
|
||||||||||||||||||||||||||||||||||
|
值,表示裝置的多邊形功能,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指出裝置文字功能的值,如下表所示。
|
||||||||||||||||||||||||||||||||||
|
指出裝置色彩管理功能的值。
|
傳回值
傳回值會指定所需專案的值。
當 nIndex 是 BITSPIXEL 且裝置有 15bpp 或 16bpp 時,傳回值為 16。
備註
當 nIndex 是 SHADEBLENDCAPS 時:
- 對於印表機, GetDeviceCaps 會傳回印表機報告的任何內容。
- 針對顯示裝置,所有混合作業都可供使用;除了SB_NONE以外,唯一的傳回值是SB_CONST_ALPHA和SB_PIXEL_ALPHA,這表示這些作業是否加速。
注意 Display1 通常是主要監視器,但不一定是。
索引 | 印表機逸出已取代 |
---|---|
PHYSICALWIDTH | GETPHYSPAGESIZE |
PHYSICALHEIGHT | GETPHYSPAGESIZE |
PHYSICALOFFSETX | GETPRINTINGOFFSET |
PHYSICALOFFSETY | GETPHYSICALOFFSET |
SCALINGFACTORX | GETSCALINGFACTOR |
SCALINGFACTORY | GETSCALINGFACTOR |
注意GetDeviceCaps 會報告顯示驅動程式所提供的資訊。 如果顯示驅動程式拒絕報告任何資訊, GetDeviceCaps 會根據固定計算來計算資訊。 如果顯示驅動程式報告了無效的資訊, GetDeviceCaps 會傳回無效的資訊。 此外,如果顯示驅動程式拒絕報告資訊, GetDeviceCaps 可能會計算不正確的資訊,因為它假設固定 DPI (96 DPI) 或固定大小 (,視顯示驅動程式所做的資訊而定,而且未提供) 。 不幸的是,實作到 Windows Display Driver Model (WDDM) (中引進的顯示器驅動程式) 會導致 GDI 無法取得資訊,因此 GetDeviceCaps 必須一律計算資訊。
範例
如需範例,請參閱 準備列印。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | wingdi.h (包含 Windows.h) |
程式庫 | Gdi32.lib |
Dll | Gdi32.dll |