Condividi tramite


CStatic::SetBitmap

Associa una nuova bitmap con il controllo statico.

HBITMAP SetBitmap(
   HBITMAP hBitmap 
);

Parametri

  • hBitmap
    Handle della bitmap da disegnare il controllo statico.

Valore restituito

Handle della bitmap che è stata precedentemente associata al controllo statico, o NULL se non fosse bitmap associata al controllo statico.

Note

La bitmap verrà automaticamente assorbita il controllo statico. Per impostazione predefinita, viene disegnata con l'angolo superiore sinistro e il controllo statico verrà ridimensionato alla dimensione della bitmap.

È possibile utilizzare diversi stili del controllo statico e la finestra, inclusi i seguenti:

  • Utilizzo di SS_BITMAP questo stile sempre per le bitmap.

  • Utilizzo di SS_CENTERIMAGE centrare l'immagine nel controllo statico. Se l'immagine è più grande del controllo statico, verrà troncato. Se è minore del controllo statico, lo spazio vuoto nell'immagine verrà riempito dal colore del pixel nell'angolo superiore sinistro della bitmap.

  • MFC fornisce la classe CBitmap, che è possibile utilizzare quando è necessario eseguire con un'immagine bitmap appena si chiama la funzione Win32 LoadBitmap. CBitmap, che contiene un tipo di oggetto GDI, viene spesso utilizzato in collaborazione con CStatic, una classe CWnd utilizzata per la visualizzazione dell'oggetto grafico come controllo statico.

CImage è una classe ATL/MFC che consente di eseguire più facilmente utilizzare le bitmap (DIB) indipendente dal dispositivo. Per ulteriori informazioni, vedere CImage Class.

  • L'utilizzo tipico consiste nel fornire a CStatic::SetBitmap un oggetto GDI restituito dal responsabile di HBITMAP di un oggetto CImage o CBitmap. Il codice per questo scopo è simile alla seguente riga.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

Nell'esempio seguente vengono creati due oggetti CStatic nell'heap. Quindi carica una con una bitmap del sistema mediante CBitmap::LoadOEMBitmap e l'altro da un file utilizzando CImage::Load.

Esempio

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

Requisiti

Intestazione: afxwin.h

Vedere anche

Riferimenti

Classe CStatic

Grafico delle gerarchie

CStatic::GetBitmap

STM_SETIMAGE

Bitmaps

Classe CBitmap

CImage Class