Compartilhar via


CStatic::SetBitmap

associa um novo bitmap com o controle estático.

HBITMAP SetBitmap(
   HBITMAP hBitmap 
);

Parâmetros

  • hBitmap
    Identificador de bitmap a ser desenhado no controle estático.

Valor de retorno

A alça de bitmap que foi anteriormente associado com o controle estático, ou se nenhum NULL bitmap foi associado ao controle estático.

Comentários

O bitmap será desenhada automaticamente no controle estático. Por padrão, será desenhado no canto superior esquerdo e o controle estático será redimensionado o tamanho de bitmap.

Você pode usar os estilos de janela estiver e controle estático, incluindo estes:

  • Uso de SS_BITMAP esse estilo para sempre bitmaps.

  • Uso de SS_CENTERIMAGE centralizar a imagem no controle estático. Se a imagem for maior do que o controle estático, será recortada. Se for menor do que o controle estático, o espaço vazio em torno da imagem será preenchida pela cor de pixel no canto superior esquerdo de bitmap.

  • O MFC fornece a classe CBitmap, que você pode usar quando você tem que fazer mais com uma imagem de bitmap do que apenas chama a função LoadBitmapWin32. CBitmap, que contém um tipo de objeto do GDI, é geralmente usado em cooperação com CStatic, que é uma classe de CWnd que é usada exibindo um objeto gráfico como um controle estático.

CImage é uma classe de ATL/MFC que permite que você mais facilmente trabalhar com bitmaps (DIB) independentes de dispositivo. Para obter mais informações, consulte Classe CImage.

  • O uso típico é fornecer a CStatic::SetBitmap um objeto do GDI que é retornado pelo operador de HBITMAP de um objeto de CBitmap ou de CImage . O código para fazer isso é semelhante à seguinte linha.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

O exemplo a seguir cria dois objetos de CStatic no heap. Carrega em um com um bitmap do sistema usando CBitmap::LoadOEMBitmap e o outro de um arquivo usando CImage::Load.

Exemplo

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

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CStatic

Gráfico da hierarquia

CStatic::GetBitmap

STM_SETIMAGE

Bitmaps

Classe CBitmap

Classe CImage