GetDeviceCaps

指定されたデバイスに関するデバイス固有情報を取得します。

int GetDeviceCaps(
    HDC  hDC,     // デバイスコンテキストのハンドル
    int  nIndex   // 項目の種類
);

GDI32.DLL

引数

hDC

デバイスコンテキストのハンドルを指定します。

nIndex

取得する情報の種類を指定します。以下の値のいずれかを指定します。

意味
0 (DRIVERVERSION) デバイスドライバのバージョン
2 (TECHNOLOGY) デバイステクノロジー。以下の値のいずれかが返ります。
意味
0 (DT_PLOTTER) ベクタプロッタ
1 (DT_RASDISPLAY) ラスタディスプレイ
2 (DT_RASPRINTER) ラスタプリンタ
3 (DT_RASCAMERA) ラスタカメラ
4 (DT_CHARSTREAM) 文字ストリーム
5 (DT_METAFILE) メタファイル
6 (DT_DISPFILE) ディスプレイファイル
4 (HORZSIZE)
6 (VERTSIZE)
物理画面の幅・高さ(ミリメートル単位)
8 (HORZRES)
10 (VERTRES)
画面の幅・高さ(ピクセル単位)
12 (BITSPIXEL) ピクセルあたりのカラービットの数 (プレーンごと) 。ただし、 15bpp の場合には 16 が返ります。
14 (PLANES) カラープレーンの数
16 (NUMBRUSHES) デバイス固有のブラシの数
18 (NUMPENS) デバイス固有のペンの数
20 (NUMMARKERS) デバイス固有のマーカーの数
22 (NUMFONTS) デバイス固有のフォントの数
24 (NUMCOLORS) デバイスのカラーテーブルのエントリ数 (ピクセルあたり 8 ビットを超える場合は -1 )
26 (PDEVICESIZE) 予約されています。
28 (CURVECAPS) デバイスの曲線描画能力。戻り値として次の値の組み合わせの値が返ります。
サポートする曲線
0 (CC_NONE) 曲線をサポートしない
1 (CC_CIRCLES)
2 (CC_PIE) 扇形
4 (CC_CHORD) 弓形
8 (CC_ELLIPSES) 楕円
16 (CC_WIDE) 太い線
32 (CC_STYLED) スタイル付きの線
64 (CC_WIDESTYLED) スタイル付きの太い線
128 (CC_INTERIORS) 内部の塗りつぶしをサポート
256 (CC_ROUNDRECT) 角の丸い長方形
30 (LINECAPS) デバイスの直線描画能力。戻り値として次の値の組み合わせの値が返ります。
サポートする直線
0 (LC_NONE) 直線をサポートしない
2 (LC_POLYLINE) 折れ線
4 (LC_MARKER) マーカー
8 (LC_POLYMARKER) ポリマーカー
16 (LC_WIDE) 太い直線
32 (LC_STYLED) スタイル付きの直線
64 (LC_WIDESTYLED) スタイルを持つ太い直線
128 (LC_INTERIORS) 内部の塗りつぶしをサポート
32 (POLYGONALCAPS) デバイスの多角形描画能力。戻り値として次の値の組み合わせの値が返ります。
サポートする多角形
0 (PC_NONE) 多角形をサポートしない
1 (PC_POLYGON) 交互モードの塗りつぶし
2 (PC_RECTANGLE) 長方形
4 (PC_WINDPOLYGON, PC_TRAPEZOID) 全域モードでの塗りつぶし
8 (PC_SCANLINE) 単一の走査行の描画
16 (PC_WIDE) 太い線
32 (PC_STYLED) スタイル付きの線
64 (PC_WIDESTYLED) スタイル付きの太い線
128 (PC_INTERIORS) 内部の塗りつぶしをサポート
256 (PC_POLYPOLYGON) ポリポリゴン
512 (PC_PATHS) パス
34 (TEXTCAPS) デバイスのテキスト表示能力。戻り値として次の値の組み合わせの値が返ります。
サポートするテキスト表示
0x00000001 (TC_OP_CHARACTER) キャラクタの出力精度
0x00000002 (TC_OP_STROKE) ストロークの出力精度
0x00000004 (TC_CP_STROKE) ストローククリップの精度
0x00000008 (TC_CR_90) キャラクタの 90 度回転
0x00000010 (TC_CR_ANY) キャラクタの任意の角度の回転
0x00000020 (TC_SF_X_YINDEP) x 方向と y 方向の両方の独立したスケーリング
0x00000040 (TC_SA_DOUBLE) キャラクタの 2 倍のスケーリング
0x00000080 (TC_SA_INTEGER) キャラクタの整数倍のスケーリング
0x00000100 (TC_SA_CONTIN) キャラクタの任意の倍率のスケーリング
0x00000200 (TC_EA_DOUBLE) 太字
0x00000400 (TC_IA_ABLE) イタリック体
0x00000800 (TC_UA_ABLE) 下線
0x00001000 (TC_SO_ABLE) 取り消し線
0x00002000 (TC_RA_ABLE) ラスタフォント
0x00004000 (TC_VA_ABLE) ベクトルフォント
0x00008000 (TC_RESERVED) 予約済み
0x00010000 (TC_SCROLLBLT) ビットブロック転送によるスクロールをサポートしない
36 (CLIPCAPS) デバイスのクリッピング能力。戻り値として、長方形のクリップをサポートする場合は 1 が、それ以外の場合は 0 が返ります。
38 (RASTERCAPS) デバイスのラスタ能力。戻り値として次の値の組み合わせの値が返ります。
サポートする機能
1 (RC_BITBLT) ビットマップの転送
2 (RC_BANDING) バンド処理のサポートが必要
4 (RC_SCALING) スケーリング
8 (RC_BITMAP64) 64KB より大きいビットマップ
0x0080 (RC_DI_BITMAP) SetDIBits 関数と GetDIBits 関数
0x0100 (RC_PALETTE) デバイスはパレットベースのデバイスである
0x0200 (RC_DIBTODEV) SetDIBitsToDevice 関数
0x0800 (RC_STRETCHBLT) StretchBlt 関数
0x1000 (RC_FLOODFILL) 塗りつぶし
0x2000 (RC_STRETCHDIB) StretchDIBits 関数
40 (ASPECTX)
42 (ASPECTY)
線の描画に使うデバイスピクセルの相対幅・高さ
44 (ASPECTXY) 線の描画に使うデバイスピクセルの対角線の長さ
45 (SHADEBLENDCAPS) Windows 98/2000 以降: デバイスのシェードとブレンドの能力を示す値
88 (LOGPIXELSX)
90 (LOGPIXELSY)
論理インチ当たりの画面の水平方向・垂直方向のピクセル数
104 (SIZEPALETTE) システムパレット内のエントリ数
106 (NUMRESERVED) システムパレット内の予約エントリ数
108 (COLORRES) デバイスの実際のカラー解像度を表す、ピクセル当たりのビット数
110 (PHYSICALWIDTH)
111 (PHYSICALHEIGHT)
物理的なページ全体の幅・高さ(デバイス単位)(印刷デバイス用)
112 (PHYSICALOFFSETX)
113 (PHYSICALOFFSETY)
物理的なページの左辺・上辺から印刷可能領域の左辺・上辺までの距離(デバイス単位)(印刷デバイス用)
114 (SCALINGFACTORX)
115 (SCALINGFACTORY)
x 軸・ y 軸のスケーリングファクター
116 (VREFRESH) Windows NT/2000/XP のみ: 現在のディスプレイ出力の垂直周波数 (Hz)。 0 または 1 はディスプレイのデフォルト周波数を示します。
117 (DESKTOPVERTRES)
118 (DESKTOPHORZRES)
Windows NT/2000/XP のみ: 仮想デスクトップの高さ・幅(ピクセル単位)
119 (BLTALIGNMENT) Windows NT/2000/XP のみ: デバイスに適した水平方向のアラインメント。適したアラインメントが特にないときは 0 。

戻り値

取得された情報が返ります。

対応情報

Windows 95 以降 / Windows NT 3.1 以降