CStatic::SetBitmap
スタティック コントロールによって新しいビットマップを関連付けます。
HBITMAP SetBitmap(
HBITMAP hBitmap
);
パラメーター
- hBitmap
スタティック コントロールに描画するビットマップのハンドル。
戻り値
ビットマップが静的コントロールに関連付けられない場合はスタティック コントロールで事前に関連付けられたビットマップのハンドル、または NULL。
解説
ビットマップは、スタティック コントロールで自動的に描画されます。既定では、左上隅で、スタティック コントロールはビットマップのサイズに変更されます。
これらを含むさまざまなウィンドウと静的コントロールのスタイルを使用できます:
の使用SS_BITMAPビットマップのこのスタイル常にです。
静的コントロールのイメージを中心SS_CENTERIMAGEの使用。イメージが静的コントロールよりも大きい場合は、クリップされます。これは、スタティック コントロールよりも小さい場合、イメージの周囲の空白はビットマップの左上隅のピクセルの色で塗りつぶされます。
MFCは、Win32関数を呼び出す LoadBitmapとき、ビットマップ イメージとの多くが必要に CBitmap使用できるクラスを提供します。CBitmapは1種類のGDIオブジェクトを含む CStaticと連携して、頻繁に使用される、スタティック コントロールとしてグラフィカル オブジェクトを表示するために使用されるクラスの CWnd。
CImage はデバイスに依存しないビットマップ(DIB)を使用することを容易にするATL/MFCクラスです。詳細については、「CImage クラス」を参照してください。
- 通常、CStatic::SetBitmap に CBitmap または CImage のオブジェクトのHBITMAPの演算子によって返されるGDIオブジェクトを指定します。これを行うコードは次の行に似ています。
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
次の例は、ヒープ上の CStatic の2種類のオブジェクトを作成します。これは CBitmap::LoadOEMBitmap を使用して、システムのビットマップとの1と CImage::Loadを使用してファイルから他方を読み込みます。
使用例
// Code such as this could be placed in the OnInitDialog callback.
// It creates two bitmap static controls on the heap, using members
// _m_pCStatic_A and _m_pCStatic_B to identify them so that they can
// be destroyed when no longer needed.
CBitmap CBmp;
CImage CImg;
// Create a child bitmap static control and load it from a CBitmap object.
_m_pCStatic_A = new CStatic;
_m_pCStatic_A->Create(_T("A bitmap static control (A)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(16,16,64,64),
pParentWnd);
CBmp.LoadOEMBitmap(OBM_CLOSE); // Loads one of the default Windows bitmaps
_m_pCStatic_A->SetBitmap( HBITMAP(CBmp) );
_m_pCStatic_A->ShowWindow( SW_SHOW );
// Create a child bitmap static control and load it from a CImage object.
_m_pCStatic_B = new CStatic;
_m_pCStatic_B->Create(_T("A bitmap static control (B)"),
WS_CHILD|WS_BORDER|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE, CRect(90,16,138,64),
pParentWnd);
CImg.Load( _T("test.png") );
if( _m_pCStatic_B->GetBitmap( ) == NULL )
_m_pCStatic_B->SetBitmap( HBITMAP(CImg) );
/* Then, later:
delete( _m_pCStatic_A );
delete( _m_pCStatic_B );
*/
必要条件
ヘッダー: afxwin.h