Freigeben über


CStatic::SetBitmap

Ordnet eine neue Bitmap mit dem statischen Steuerelement zu.

HBITMAP SetBitmap(
   HBITMAP hBitmap 
);

Parameter

  • hBitmap
    Handle der im statischen Steuerelement gezeichnet werden Bitmaps.

Rückgabewert

Das Handle der Bitmap, die zuvor mit dem statischen Steuerelement zugeordnet wurde oder NULL, wenn keine Bitmap mit dem statischen Steuerelement zugeordnet wurde.

Hinweise

Die Bitmap wird automatisch im statischen Steuerelement gezeichnet. Standardmäßig wird sie in der linken oberen Ecke gezeichnet und das statische Steuerelement wird der Größe der Bitmap angepasst.

Sie können verschiedene Fenster- und Steuerelementformate, einschließlich diese verwenden:

  • SS_BITMAP-Verwendung dieses Format immer für Bitmaps.

  • SS_CENTERIMAGE-Verwendung, das Bild im statischen Steuerelement zu zentrieren. Wenn das Bild größer als das statische - Steuerelement ist, wird es abgeschnitten. Wenn sie kleiner als das statische - Steuerelement ist, wird der leere um das Bild durch die Farbe des Pixels in der oberen linken Ecke der Bitmaps gefüllt.

  • MFC stellt die - Klasse CBitmap, die Sie verwenden können, wenn Sie mehr mit einem Bitmapbild als Aktion müssen aufrufen nur die Win32-Funktion LoadBitmap. CBitmap, das eine Art GDI-Objekt enthält, wurde in Zusammenarbeit mit CStatic häufig verwendet, das eine CWnd-Klasse ist, die zum Anzeigen eines Grafikobjekts als statisches Steuerelement verwendet wird.

CImage ist eine ATL-/MFCklasse, die Sie leicht mit geräteunabhängigen Bitmaps (DIBs) arbeiten können. Weitere Informationen finden Sie unter CImage Class.

  • Typische Verwendung ist, CStatic::SetBitmap ein GDI-Objekt zu geben, das vom HBITMAP-Operator eines CBitmap oder CImage-Objekts zurückgegeben wird. Der Code, mit dem Sie hierzu ähnelt der folgenden Zeile.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

Im folgenden Beispiel wird CStatic zwei Objekte auf dem Heap. Es lädt dann ein mit einer Systembitmap mithilfe CBitmap::LoadOEMBitmap und das andere aus einer Datei mit CImage::Load.

Beispiel

// 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 );
   */

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

CStatic-Klasse

Hierarchiediagramm

CStatic::GetBitmap

STM_SETIMAGE

Bitmaps

CBitmap-Klasse

CImage Class