CStatic::SetBitmap
Associe une nouvelle bitmap avec le contrôle statique.
HBITMAP SetBitmap(
HBITMAP hBitmap
);
Paramètres
- hBitmap
Handle de la bitmap à dessiner dans le contrôle statique.
Valeur de retour
Handle de la bitmap qui a été précédemment associée au contrôle statique, ou NULL si aucune bitmap n'est associée au contrôle statique.
Notes
La bitmap est automatiquement dessinée dans le contrôle statique. Par défaut, elle sera dessinée dans le coin supérieur gauche et le contrôle statique est redimensionné à la taille de la bitmap.
Vous pouvez utiliser des styles de fenêtre différente et de contrôle statique, dont notamment :
Utilisation de SS_BITMAP ce style toujours pour les bitmaps.
Utilisation de SS_CENTERIMAGE de centrer l'image dans le contrôle statique. Si l'image est plus grande que le contrôle statique, elle est découpé. Si elle est plus petite que le contrôle statique, l'espace vide autour de l'image sera rempli par la couleur du pixel dans l'angle supérieur gauche de la bitmap.
MFC fournit la classe CBitmap, que vous pouvez utiliser lorsque vous devez effectuer plus avec une image bitmap qu'appelez simplement la fonction LoadBitmapWin32. CBitmap, qui contient un type d'objet GDI, est souvent utilisé en coopération avec CStatic, qui est une classe d' CWnd utilisée pour afficher un objet graphique comme un contrôle statique.
CImage est une classe ATL/MFC qui vous permet de facilement travailler avec des bitmaps indépendantes du périphérique (DIB). Pour plus d’informations, consultez CImage, classe.
- L'utilisation classique est de permettre à CStatic::SetBitmap un objet GDI retourné par l'opérateur de HBITMAP d'un objet d' CBitmap ou d' CImage . Le code pour cela ressemble à la ligne suivante.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
l'exemple suivant crée deux objets d' CStatic sur le tas. Il charge ensuite un avec une image bitmap de système à l'aide CBitmap::LoadOEMBitmap et l'autre à partir d'un fichier à l'aide de CImage::Load.
Exemple
// 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 );
*/
Configuration requise
En-tête : afxwin.h