ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

GetDeviceCaps で画面の色と領域を取得する 

更新 : 2009/04/28

 



解説:
解像度の取得には、GetDeviceCaps 関数を使用します。この関数は、引数に定数を指定することで、デバイス固有の得たい情報が戻り値として返ってきます。情報として、画面の幅やピクセルあたりのカラービット数などが得られます。

int GetDeviceCaps(hdc, nIndex)
    HDC hdc;   // デバイスコンテキストのハンドル
    int nIndex; // 取得したい情報を表す定数を指定

使用例:
以下は、画面の色数と画面の領域を取得する例です(上記の方法と違うやり方)。

準備としては、Button とMemo を配置します。

Button をクリックすると画面の色数と画面の領域を取得して、Memo に表示します。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 画面を取り込む
    HDC dc = GetDC(0);// デバイスコンテキストのハンドルを取得

    // ピクセルあたりのカラービット数×カラープレーン(
)数
    int colorBitCount = GetDeviceCaps(dc, BITSPIXEL) * GetDeviceCaps(dc, PLANES);
    Memo1->Lines->Add("画面の色数:" + IntToStr(colorBitCount));

    // 画面の領域
    int width  = GetDeviceCaps(dc, HORZRES); // ディスプレイの幅
    int height = GetDeviceCaps(dc, VERTRES); // ディスプレイの高さ
    Memo1->Lines->Add("画面の領域:" + IntToStr(width) + "×" + IntToStr(height));

    // デバイスコンテキストを解放
    ReleaseDC(0, dc);
}
//-------------------------------------------------------------------

カラープレーン
コンピュータグラフィックスでの色定義では大半が 8 ビットを単位としています。8 ビットの単位を "チャンネル" と呼ぶ場合や、"カラー プレーン" と呼ぶ場合があります。



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.