CBitmap
クラス
Windows のグラフィック デバイス インターフェイス (GDI: Graphics Device Interface) のビットマップをカプセル化したもので、ビットマップを操作するためのメンバー関数を提供します。
構文
class CBitmap : public CGdiObject
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CBitmap::CBitmap |
CBitmap オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CBitmap::CreateBitmap |
指定した幅、高さ、およびビット パターンを持つデバイス依存のメモリ ビットマップを使用してオブジェクトを初期化します。 |
CBitmap::CreateBitmapIndirect |
構造体で指定された幅、高さ、ビット パターン (指定されている場合) を使用して、ビットマップを使用してオブジェクトを BITMAP 初期化します。 |
CBitmap::CreateCompatibleBitmap |
指定したデバイスと互換性を持つように、ビットマップを使用してオブジェクトを初期化します。 |
CBitmap::CreateDiscardableBitmap |
指定したデバイスと互換性のあるカード不可能なビットマップを使用してオブジェクトを初期化します。 |
CBitmap::FromHandle |
Windows HBITMAP ビットマップへのハンドルがCBitmap 与えられた場合に、オブジェクトへのポインターを返します。 |
CBitmap::GetBitmap |
ビットマップに関する BITMAP 情報を構造体に入力します。 |
CBitmap::GetBitmapBits |
指定したビットマップのビットを指定したバッファーにコピーします。 |
CBitmap::GetBitmapDimension |
ビットマップの幅と高さを返します。 高さと幅は、メンバー関数によって SetBitmapDimension 以前に設定されているものと見なされます。 |
CBitmap::LoadBitmap |
アプリケーションの実行可能ファイルから名前付きビットマップ リソースを読み込み、そのビットマップをオブジェクトにアタッチして、オブジェクトを初期化します。 |
CBitmap::LoadMappedBitmap |
ビットマップを読み込み、色を現在のシステムの色にマップします。 |
CBitmap::LoadOEMBitmap |
定義済みの Windows ビットマップを読み込み、ビットマップをオブジェクトにアタッチして、オブジェクトを初期化します。 |
CBitmap::SetBitmapBits |
ビットマップのビットを指定したビット値に設定します。 |
CBitmap::SetBitmapDimension |
ビットマップに幅と高さを 0.1 mm 単位で割り当てます。 |
パブリック演算子
名前 | 説明 |
---|---|
CBitmap::operator HBITMAP |
CBitmap オブジェクトにアタッチされている Windows ハンドルを返します。 |
解説
オブジェクトを CBitmap
使用するには、オブジェクトを構築し、初期化メンバー関数の 1 つでビットマップ ハンドルをアタッチしてから、オブジェクトのメンバー関数を呼び出します。
グラフィック CBitmap
オブジェクトの使用方法の詳細については、「グラフィック オブジェクト」を参照してください。
継承階層
CBitmap
必要条件
ヘッダー:afxwin.h
CBitmap::CBitmap
CBitmap
オブジェクトを構築します。
CBitmap();
解説
結果のオブジェクトは、初期化メンバー関数のいずれかで初期化する必要があります。
CBitmap::CreateBitmap
指定した幅、高さ、ビット パターンに設定されている、デバイス依存のメモリ ビットマップを初期化します。
BOOL CreateBitmap(
int nWidth,
int nHeight,
UINT nPlanes,
UINT nBitcount,
const void* lpBits);
パラメーター
nWidth
ビットマップの幅 (ピクセル単位) を指定します。
nHeight
ビットマップの高さ (ピクセル単位) を指定します。
nPlanes
ビットマップ内でのカラー プレーンの数を指定します。
nBitcount
表示ピクセルごとのカラー ビット数を指定します。
lpBits
初期のビットマップのビット値を含むバイト配列を指します。 その場合、 NULL
新しいビットマップは初期化されていないままです。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
カラー ビットマップの場合、 nPlanes
パラメーターまたは nBitcount
パラメーターを 1 に設定する必要があります。 両方のパラメーターを 1 に設定すると、 CreateBitmap
によってモノクロのビットマップが作成されます。
ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、"メモリ デバイス コンテキスト" の現在のビットマップとして選択するには、関数を使用CDC::SelectObject
CDC::BitBlt
して互換性のあるデバイス コンテキストにコピーします。
CBitmap
関数によって作成された CreateBitmap
オブジェクトでの作業終了後、デバイス コンテキスト外のビットマップを最初に選択し、次に CBitmap
オブジェクトを削除します。
詳細については、構造のフィールドの bmBits
説明を BITMAP
参照してください。 構造体は BITMAP
メンバー関数の下で CBitmap::CreateBitmapIndirect
記述されます。
CBitmap::CreateBitmapIndirect
指定された構造体で指定された幅、高さ、ビット パターン (指定されている場合) を持つビットマップを lpBitmap
初期化します。
BOOL CreateBitmapIndirect(LPBITMAP lpBitmap);
パラメーター
lpBitmap
ビットマップに BITMAP
関する情報を含む構造体を指します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ビットマップは、ディスプレイ デバイスに対して直接選択することはできませんが、使用してメモリ デバイス コンテキストの現在のビットマップとして選択し、またはCDC::StretchBlt
関数を使用CDC::SelectObject
CDC::BitBlt
して互換性のあるデバイス コンテキストにコピーできます。 (この関数は CDC::PatBlt
、現在のブラシのビットマップをディスプレイ デバイス コンテキストに直接コピーできます)。
パラメーターがBITMAP
lpBitmap
指す構造体が関数を使用してGetObject
入力されている場合、ビットマップのビットは指定されず、ビットマップは初期化されません。 ビットマップを初期化するために、アプリケーションは、最初のパラメーターCGdiObject::GetObject
で識別されたビットマップから作成CreateBitmapIndirect
されたビットマップにビットをコピーするなどのCDC::BitBlt
SetDIBits
関数を使用できます。
関数を使用CreateBitmapIndirect
して作成されたオブジェクトをCBitmap
使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap
削除します。
CBitmap::CreateCompatibleBitmap
で指定された pDC
デバイスと互換性のあるビットマップを初期化します。
BOOL CreateCompatibleBitmap(
CDC* pDC,
int nWidth,
int nHeight);
パラメーター
pDC
デバイス コンテキストを指定します。
nWidth
ビットマップの幅 (ピクセル単位) を指定します。
nHeight
ビットマップの高さ (ピクセル単位) を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ビットマップには、指定したデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位の同じビット形式があります。 指定されたメモリ デバイスと互換性のある任意のメモリ デバイスの現在の pDC
ビットマップとして選択できます。
メモリ デバイス コンテキストの場合 pDC
、返されるビットマップは、そのデバイス コンテキストで現在選択されているビットマップと同じ形式になります。 "メモリ デバイス コンテキスト" は、表示サーフェイスを表すメモリブロックです。 互換性のあるデバイスの実際の表示画面にコピーする前に、メモリ内のイメージを準備するために使用できます。
メモリ デバイス コンテキストが作成されると、GDI は自動的にモノクロストックビットマップを選択します。
カラー メモリ デバイス コンテキストではカラー ビットマップまたはモノクロ ビットマップを選択できるため、関数によって CreateCompatibleBitmap
返されるビットマップの形式は常に同じとは限りません。ただし、非メモリ デバイス コンテキストの互換性のあるビットマップの形式は、常にデバイスの形式になります。
関数を使用CreateCompatibleBitmap
して作成されたオブジェクトをCBitmap
使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap
削除します。
CBitmap::CreateDiscardableBitmap
で識別pDC
されるデバイス コンテキストと互換性のあるカード可能なビットマップを初期化します。
BOOL CreateDiscardableBitmap(
CDC* pDC,
int nWidth,
int nHeight);
パラメーター
pDC
デバイス コンテキストを指定します。
nWidth
ビットマップの幅 (ビット単位) を指定します。
nHeight
ビットマップの高さをビット単位で指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
ビットマップには、指定したデバイス コンテキストと同じ数のカラー プレーンまたはピクセル単位の同じビット形式があります。 アプリケーションは、指定された pDC
メモリ デバイスの現在のビットマップとしてこのビットマップを選択できます。
Windows はカードアプリケーションが表示コンテキストに選択していない場合にのみ、この関数によって作成されたビットマップを削除できます。 Windows が選択されていないときにカードビットマップを削除し、アプリケーションが後でそれを選択しようとすると、CDC::SelectObject
関数は NULL を返します。
関数を使用CreateDiscardableBitmap
して作成されたオブジェクトをCBitmap
使用して終了したら、まずデバイス コンテキストからビットマップを選択してから、オブジェクトをCBitmap
削除します。
CBitmap::FromHandle
Windows GDI ビットマップへのハンドルが CBitmap
与えられた場合に、オブジェクトへのポインターを返します。
static CBitmap* PASCAL FromHandle(HBITMAP hBitmap);
パラメーター
hBitmap
Windows GDI ビットマップを指定します。
戻り値
成功した場合は CBitmap
オブジェクトへのポインター。それ以外の場合 NULL
。
解説
CBitmap
オブジェクトがまだハンドルにアタッチされていない場合は、一時CBitmap
オブジェクトが作成されてアタッチされます。 この一時 CBitmap
オブジェクトは、アプリケーションがイベント ループで次にアイドル時間を過ぎ、その時点ですべての一時グラフィック オブジェクトが削除されるまで有効です。 もう 1 つの言い方は、一時オブジェクトが 1 つのウィンドウ メッセージの処理中にのみ有効であるという点です。
CBitmap::GetBitmap
添付ビットマップのイメージ プロパティを取得します。
int GetBitmap(BITMAP* pBitMap);
パラメーター
pBitMap
イメージのプロパティを BITMAP
受け取る構造体へのポインター。 このパラメーターは NULL
にすることはできません。
戻り値
メソッドが成功した場合は 0 以外、それ以外の場合は 0。
解説
CBitmap::GetBitmapBits
アタッチされたビットマップのビット パターンを指定したバッファーにコピーします。
DWORD GetBitmapBits(
DWORD dwCount,
LPVOID lpBits) const;
パラメーター
dwCount
バッファーにコピーするバイト数。
lpBits
ビットマップを受け取るバッファーへのポインター。
戻り値
メソッドが成功した場合にバッファーにコピーされたバイト数。それ以外の場合は 0。
解説
必要なバッファー サイズを決定するために使用 CBitmap::GetBitmap
します。
CBitmap::GetBitmapDimension
ビットマップの幅と高さを返します。
CSize GetBitmapDimension() const;
戻り値
ビットマップの幅と高さを 0.1 ミリメートル単位で測定します。 高さはオブジェクトのcy
CSize
メンバーにあり、幅はメンバー内にありますcx
。 ビットマップの幅と高さが使用 SetBitmapDimension
して設定されていない場合、戻り値は 0 です。
解説
高さと幅は、メンバー関数を使用 SetBitmapDimension
して以前に設定されているものと見なされます。
CBitmap::LoadBitmap
アプリケーションの実行可能ファイルから、ID 番号nIDResource
によってlpszResourceName
名前付けまたは識別されたビットマップ リソースを読み込みます。
BOOL LoadBitmap(LPCTSTR lpszResourceName);
BOOL LoadBitmap(UINT nIDResource);
パラメーター
lpszResourceName
ビットマップ リソースの名前を含む null で終わる文字列を指します。
nIDResource
ビットマップ リソースのリソース ID 番号を指定します。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
読み込まれたビットマップがオブジェクトに CBitmap
アタッチされます。
指定された lpszResourceName
ビットマップが存在しない場合、またはビットマップを読み込むためのメモリが不足している場合、関数は 0 を返します。
関数を CGdiObject::DeleteObject
使用して、関数によって読み込まれたビットマップを LoadBitmap
削除できます。または CBitmap
、デストラクターによってオブジェクトが削除されます。
注意事項
オブジェクトを削除する前に、デバイス コンテキストで選択されていないことを確認します。
次のビットマップが Windows バージョン 3.1 以降に追加されました。
OBM_UPARRROWIOBM_DNARROWIOBM_RGARROWIOBM_LFARROWI
これらのビットマップは、Windows バージョン 3.0 以前のデバイス ドライバーでは見つかりません。 ビットマップの完全な一覧とその外観については、Windows SDK を参照してください。
CBitmap::LoadMappedBitmap
ビットマップを読み込み、色を現在のシステムの色にマップするには、このメンバー関数を呼び出します。
BOOL LoadMappedBitmap(
UINT nIDBitmap,
UINT nFlags = 0,
LPCOLORMAP lpColorMap = NULL,
int nMapSize = 0);
パラメーター
nIDBitmap
ビットマップ リソースの ID。
nFlags
ビットマップのフラグ。 0 または CMB_MASKED
.
lpColorMap
ビットマップを COLORMAP
マップするために必要な色情報を含む構造体へのポインター。 このパラメーターの場合、関数は NULL
既定のカラー マップを使用します。
nMapSize
によって指 lpColorMap
されるカラー マップの数。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
既定では、 LoadMappedBitmap
ボタン グリフでよく使用される色がマップされます。
マップされたビットマップの作成の詳細については、Windows SDK の Windows 関数 CreateMappedBitmap
と COLORMAP
構造を参照してください。
CBitmap::LoadOEMBitmap
Windows で使用される定義済みのビットマップを読み込みます。
BOOL LoadOEMBitmap(UINT nIDBitmap);
パラメーター
nIDBitmap
定義済みの Windows ビットマップの ID 番号。 指定できる値は次のとおりです WINDOWS.H
。
OBM_BTNCORNERS
OBM_BTSIZE
OBM_CHECK
OBM_CHECKB (キロバイト)OXES
OBM_CLOStandard Edition
OBM_COMB (メガバイト)O
OBM_DNARROW
OBM_DNARROWD
OBM_DNARROWI
OBM_LFARROW
OBM_LFARROWD
OBM_LFARROWI
OBM_MNARROW
OBM_OLD_CLOStandard Edition
OBM_OLD_DNARROW
OBM_OLD_LFARROW
OBM_OLD_REDUCE
OBM_OLD_RESTORE
OBM_OLD_RGARROW
OBM_OLD_UPARROW
OBM_OLD_ZOOM
OBM_REDUCE
OBM_REDUCED
OBM_RESTORE
OBM_RESTORED
OBM_RGARROW
OBM_RGARROWD
OBM_RGARROWI
OBM_SIZE
OBM_UPARROW
OBM_UPARROW
OBM_UPARROWD
OBM_ZOOM
OBM_ZOOMD
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
先頭のビットマップ名は、 OBM_OLD
3.0 より前のバージョンの Windows で使用されるビットマップを表します。
定数 OEMRESOURCE
を使用するには、定数を含める WINDOWS.H
前に定義する OBM_
必要があることに注意してください。
CBitmap::operator HBITMAP
CBitmap
オブジェクトのアタッチされた Windows GDI ハンドルを取得するには、この演算子を使用します。
operator HBITMAP() const;
戻り値
成功した場合は、オブジェクトによって CBitmap
表される Windows GDI オブジェクトへのハンドル。それ以外の場合 NULL
は .
解説
この演算子は、HBITMAP
オブジェクトの直接使用をサポートするキャスト演算子です。
グラフィック オブジェクトの使用の詳細については、「Windows SDK のグラフィック オブジェクト」を参照してください。
CBitmap::SetBitmapBits
ビットマップのビットを指定したビット値 lpBits
に設定します。
DWORD SetBitmapBits(
DWORD dwCount,
const void* lpBits);
パラメーター
dwCount
によって lpBits
指されるバイト数を指定します。
lpBits
オブジェクトに BYTE
コピーするピクセル値を含む配列を CBitmap
指します。 ビットマップがイメージを正しくレンダリングできるようにするには、インスタンスの作成時に指定された高さ、幅、色深度の値に準拠するように値を書式設定する CBitmap
必要があります。 詳細については、CBitmap::CreateBitmap
を参照してください。
戻り値
ビットマップ ビットの設定に使用されるバイト数。関数が失敗した場合は 0。
CBitmap::SetBitmapDimension
ビットマップに幅と高さを 0.1 mm 単位で割り当てます。
CSize SetBitmapDimension(
int nWidth,
int nHeight);
パラメーター
nWidth
ビットマップの幅を指定します (0.1 ミリメートル単位)。
nHeight
ビットマップの高さを指定します (0.1 ミリメートル単位)。
戻り値
前のビットマップの寸法。 Height はオブジェクトの cy
メンバー変数内 CSize
にあり、width はメンバー変数内 cx
にあります。
解説
GDI は、アプリケーションがメンバー関数を呼び出すときに返す以外は、これらの値を GetBitmapDimension
使用しません。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示