Compartir a través de


CStatic::SetBitmap

Asocia un nuevo mapa de bits al control estático.

HBITMAP SetBitmap(
   HBITMAP hBitmap 
);

Parámetros

  • hBitmap
    Identificador del mapa de bits que se va a dibujar en el control estático.

Valor devuelto

El identificador del mapa de bits que se asociaba previamente al control estático, o NULL si no asociado ningún mapa de bits al control estático.

Comentarios

El mapa de bits automáticamente se dibuja en el control estático.De forma predeterminada, se dibujarán en la esquina superior izquierda y el control estático se cambiará el tamaño al tamaño del mapa de bits.

Puede utilizar estilos de la ventana diferente y control estático, incluidos los siguientes:

  • Uso de SS_BITMAP este estilo siempre para los mapas de bits.

  • Centro de uso de SS_CENTERIMAGE la imagen en el control estático.Si la imagen es mayor que el control estático, se recorta.Si es menor que el control estático, el espacio vacío alrededor de la imagen se rellena con el color del píxel situado en la esquina superior izquierda del mapa de bits.

  • MFC proporciona la clase CBitmap, que puede utilizar para hacer más con una imagen de mapa de bits que simplemente llama a la función LoadBitmapde Win32.CBitmap, que contiene una clase de objeto de GDI, se utiliza a menudo en cooperación con CStatic, que es una clase CWnd que se utiliza para mostrar un objeto gráfico como control estático.

CImage es una clase ATL y MFC que permite más fácil trabajar con mapas de bits independientes del dispositivo (DIB).Para obtener más información, vea Clase CImage.

  • El uso típico es proporcionar a CStatic::SetBitmap un objeto GDI que es devuelto por el operador de HBITMAP de un objeto CBitmap o CImage .El código para ello es similar a la siguiente línea.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

El ejemplo siguiente se crean dos objetos CStatic en la pila.A continuación carga uno con un mapa de bits del sistema mediante CBitmap::LoadOEMBitmap y otro de un archivo utilizando CImage::Load.

Ejemplo

// 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

Encabezado: afxwin.h

Vea también

Referencia

Clase de CStatic

Gráfico de jerarquía

CStatic::GetBitmap

STM_SETIMAGE

Bitmaps

Clase de CBitmap

Clase CImage