Partager via


La classe CStatic

Fournit les fonctionnalités d'un contrôle statique Windows.

Syntaxe

class CStatic : public CWnd

Membres

Constructeurs publics

Nom Description
CStatic::CStatic Construit un objet CStatic.

Méthodes publiques

Nom Description
CStatic::Create Crée le contrôle statique Windows et l’attache à l’objet CStatic .
CStatic::DrawItem Remplacez le dessin d’un contrôle statique dessiné par le propriétaire.
CStatic::GetBitmap Récupère le handle de la bitmap précédemment définie avec SetBitmap.
CStatic::GetCursor Récupère le handle de l’image de curseur précédemment définie avec SetCursor.
CStatic::GetEnhMetaFile Récupère le handle du métafichier amélioré précédemment défini avec SetEnhMetaFile.
CStatic::GetIcon Récupère le handle de l’icône précédemment définie avec SetIcon.
CStatic::SetBitmap Spécifie une bitmap à afficher dans le contrôle statique.
CStatic::SetCursor Spécifie une image de curseur à afficher dans le contrôle statique.
CStatic::SetEnhMetaFile Spécifie un métafichier amélioré à afficher dans le contrôle statique.
CStatic::SetIcon Spécifie une icône à afficher dans le contrôle statique.

Notes

Un contrôle statique affiche une chaîne de texte, une zone, un rectangle, une icône, un curseur, une bitmap ou un métafichier amélioré. Il peut être utilisé pour étiqueter, box ou séparer d’autres contrôles. Un contrôle statique ne prend normalement aucune entrée et ne fournit aucune sortie ; Toutefois, il peut notifier son parent de clics de souris s’il est créé avec SS_NOTIFY un style.

Créez un contrôle statique en deux étapes. Tout d’abord, appelez le constructeur pour construire l’objet CStatic , puis appelez la Create fonction membre pour créer le contrôle statique et l’attacher à l’objet CStatic .

Si vous créez un CStatic objet dans une boîte de dialogue (via une ressource de boîte de dialogue), l’objet CStatic est automatiquement détruit lorsque l’utilisateur ferme la boîte de dialogue.

Si vous créez un CStatic objet dans une fenêtre, vous devrez peut-être également le détruire. Un CStatic objet créé sur la pile dans une fenêtre est automatiquement détruit. Si vous créez l’objet CStatic sur le tas à l’aide de la new fonction, vous devez appeler delete l’objet pour le détruire lorsque vous l’avez terminé.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CStatic

Spécifications

En-tête : afxwin.h

CStatic::Create

Crée le contrôle statique Windows et l’attache à l’objet CStatic .

virtual BOOL Create(
    LPCTSTR lpszText,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID = 0xffff);

Paramètres

lpszText
Spécifie le texte à placer dans le contrôle. Si NULL, aucun texte n’est visible.

dwStyle
Spécifie le style de fenêtre du contrôle statique. Appliquez n’importe quelle combinaison de styles de contrôle statiques au contrôle.

rect
Spécifie la position et la taille du contrôle statique. Il peut s’agir d’une RECT structure ou d’un CRect objet.

pParentWnd
Spécifie la CStatic fenêtre parente, généralement un CDialog objet. Il ne doit pas être NULL.

nID
Spécifie l’ID de contrôle du contrôle statique.

Valeur de retour

Valeur différente de zéro cas de réussite ; sinon, 0.

Notes

Construisez un CStatic objet en deux étapes. Tout d’abord, appelez le constructeur CStatic, puis appelez Create, qui crée le contrôle statique Windows et l’attache à l’objet CStatic .

Appliquez les styles de fenêtre suivants à un contrôle statique :

  • WS_CHILD Toujours

  • WS_VISIBLE Habituellement

  • WS_DISABLED Rarement

Si vous souhaitez afficher une bitmap, un curseur, une icône ou un métafichier dans le contrôle statique, vous devez appliquer l’un des styles statiques suivants :

  • SS_BITMAP Utilisez ce style pour les bitmaps.

  • SS_ICON Utilisez ce style pour les curseurs et les icônes.

  • SS_ENHMETAFILE Utilisez ce style pour les métafichiers améliorés.

Pour les curseurs, les bitmaps ou les icônes, vous pouvez également utiliser le style suivant :

  • SS_CENTERIMAGE Permet de centrer l’image dans le contrôle statique.

Exemple

// This code can be placed in OnInitDialog
CStatic myStatic;

// Create a child static control that centers its text horizontally.
myStatic.Create(_T("my static"), WS_CHILD | WS_VISIBLE | SS_CENTER,
                CRect(10, 10, 150, 50), pParentWnd);

CStatic::CStatic

Construit un objet CStatic.

CStatic();

Exemple

// Create a static object on the stack.
CStatic myStatic;

// Create a static object on the heap.
CStatic *pmyStatic = new CStatic;

CStatic::DrawItem

Appelé par l’infrastructure pour dessiner un contrôle statique dessiné par le propriétaire.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Paramètres

lpDrawItemStruct
Pointeur vers une DRAWITEMSTRUCT structure. La structure contient des informations sur l’élément à dessiner et le type de dessin requis.

Notes

Remplacez cette fonction pour implémenter le dessin pour un objet dessiné CStatic par le propriétaire (le contrôle a le style SS_OWNERDRAW).

CStatic::GetBitmap

Obtient le handle de la bitmap, précédemment définie avec SetBitmap, associée à CStatic.

HBITMAP GetBitmap() const;

Valeur de retour

Handle de la bitmap actuelle ou NULL si aucune bitmap n’a été définie.

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

CStatic::GetCursor

Obtient le handle du curseur, précédemment défini avec SetCursor, associé à CStatic.

HCURSOR GetCursor();

Valeur de retour

Handle vers le curseur actuel ou NULL si aucun curseur n’a été défini.

Exemple

CStatic myStatic;

// Create a child icon static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
                pParentWnd);

// If no image is defined for the static control, define the image
// to the system arrow and question mark cursor.
if (myStatic.GetCursor() == NULL)
   myStatic.SetCursor(::LoadCursor(NULL, IDC_HELP));

CStatic::GetEnhMetaFile

Obtient le handle du métafichier amélioré, précédemment défini avec SetEnhMetafile, associé à CStatic.

HENHMETAFILE GetEnhMetaFile() const;

Valeur de retour

Handle du métafichier amélioré actuel ou NULL si aucun métafichier amélioré n’a été défini.

Exemple

CStatic myStatic;

// Create a child enhanced metafile static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ENHMETAFILE | SS_CENTERIMAGE,
                CRect(10, 10, 150, 50), pParentWnd);

// If no image is defined for the static control, define the image
// to be "myemf.emf."
if (myStatic.GetEnhMetaFile() == NULL)
   myStatic.SetEnhMetaFile(::GetEnhMetaFile(_T("myemf.emf")));

CStatic::GetIcon

Obtient le handle de l’icône, précédemment défini avec SetIcon, associé à CStatic.

HICON GetIcon() const;

Valeur de retour

Handle vers l’icône actuelle ou NULL si aucune icône n’a été définie.

Exemple

CStatic myStatic;

// Create a child icon static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
                pParentWnd);

// If no icon is defined for the static control, define the icon
// to the system error icon.
if (myStatic.GetIcon() == NULL)
   myStatic.SetIcon(::LoadIcon(NULL, IDI_ERROR));

CStatic::SetBitmap

Associe une nouvelle bitmap au contrôle statique.

HBITMAP SetBitmap(HBITMAP hBitmap);

Paramètres

hBitmap
Handle de l’image bitmap à dessiner dans le contrôle statique.

Valeur de retour

Handle de l’image bitmap précédemment associée au contrôle statique, ou NULL si aucune bitmap n’a été associée au contrôle statique.

Notes

La bitmap est automatiquement dessinée dans le contrôle statique. Par défaut, il sera dessiné dans le coin supérieur gauche et le contrôle statique sera redimensionné à la taille de la bitmap.

Vous pouvez utiliser différents styles de contrôle de fenêtre et statiques, notamment :

  • SS_BITMAP Utilisez toujours ce style pour les bitmaps.

  • SS_CENTERIMAGE Permet de centrer l’image dans le contrôle statique. Si l’image est supérieure au contrôle statique, elle est clippée. S’il est inférieur au contrôle statique, l’espace vide autour de l’image est rempli par la couleur du pixel dans le coin supérieur gauche de la bitmap.

  • MFC fournit la classe CBitmap, que vous pouvez utiliser lorsque vous devez effectuer plus d’utilisation avec une image bitmap que d’appeler simplement la fonction LoadBitmapWin32 . CBitmap, qui contient un type d’objet GDI, est souvent utilisé en coopération avec CStatic, qui est une CWnd classe utilisée pour afficher un objet graphique en tant que contrôle statique.

CImage est une classe ATL/MFC qui vous permet de travailler plus facilement avec des bitmaps indépendantes de l’appareil (DIB). Pour plus d’informations, consultez CImage Classe.

  • L’utilisation classique consiste à donner CStatic::SetBitmap un objet GDI retourné par l’opérateur HBITMAP d’un ou CImage d’un CBitmap objet. Le code à suivre ressemble à la ligne suivante.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

L’exemple suivant crée deux CStatic objets sur le tas. Il charge ensuite l’une avec une bitmap système à l’aide CBitmap::LoadOEMBitmap et l’autre à partir d’un fichier à l’aide CImage::Loadde .

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

CStatic::SetCursor

Associe une nouvelle image de curseur au contrôle statique.

HCURSOR SetCursor(HCURSOR hCursor);

Paramètres

hCursor
Handle du curseur à dessiner dans le contrôle statique.

Valeur de retour

Handle du curseur précédemment associé au contrôle statique, ou NULL si aucun curseur n’a été associé au contrôle statique.

Notes

Le curseur est automatiquement dessiné dans le contrôle statique. Par défaut, il sera dessiné dans le coin supérieur gauche et le contrôle statique sera redimensionné à la taille du curseur.

Vous pouvez utiliser différents styles de contrôle de fenêtre et de contrôle statique, notamment les suivants :

  • SS_ICON Utilisez toujours ce style pour les curseurs et les icônes.

  • SS_CENTERIMAGE Permet de centrer dans le contrôle statique. Si l’image est supérieure au contrôle statique, elle est clippée. S’il est plus petit que le contrôle statique, l’espace vide autour de l’image est rempli avec la couleur d’arrière-plan du contrôle statique.

Exemple

CStatic myStatic;

// Create a child icon static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
                pParentWnd);

// If no image is defined for the static control, define the image
// to the system arrow and question mark cursor.
if (myStatic.GetCursor() == NULL)
   myStatic.SetCursor(::LoadCursor(NULL, IDC_HELP));

CStatic::SetEnhMetaFile

Associe une nouvelle image de métafichier améliorée au contrôle statique.

HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);

Paramètres

hMetaFile
Handle du métafichier amélioré à dessiner dans le contrôle statique.

Valeur de retour

Handle du métafichier amélioré précédemment associé au contrôle statique, ou NULL si aucun métafichier amélioré n’a été associé au contrôle statique.

Notes

Le métafichier amélioré sera automatiquement dessiné dans le contrôle statique. Le métafichier amélioré est mis à l’échelle pour correspondre à la taille du contrôle statique.

Vous pouvez utiliser différents styles de contrôle de fenêtre et de contrôle statique, notamment les suivants :

  • SS_ENHMETAFILE Utilisez ce style toujours pour les métafichiers améliorés.

Exemple

CStatic myStatic;

// Create a child enhanced metafile static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ENHMETAFILE | SS_CENTERIMAGE,
                CRect(10, 10, 150, 50), pParentWnd);

// If no image is defined for the static control, define the image
// to be "myemf.emf."
if (myStatic.GetEnhMetaFile() == NULL)
   myStatic.SetEnhMetaFile(::GetEnhMetaFile(_T("myemf.emf")));

CStatic::SetIcon

Associe une nouvelle image d’icône au contrôle statique.

HICON SetIcon(HICON hIcon);

Paramètres

hIcon
Handle de l’icône à dessiner dans le contrôle statique.

Valeur de retour

Handle de l’icône précédemment associée au contrôle statique, ou NULL si aucune icône n’a été associée au contrôle statique.

Notes

L’icône est automatiquement dessinée dans le contrôle statique. Par défaut, il sera dessiné dans le coin supérieur gauche et le contrôle statique sera redimensionné à la taille de l’icône.

Vous pouvez utiliser différents styles de contrôle de fenêtre et de contrôle statique, notamment les suivants :

  • SS_ICON Utilisez toujours ce style pour les curseurs et les icônes.

  • SS_CENTERIMAGE Permet de centrer dans le contrôle statique. Si l’image est supérieure au contrôle statique, elle est clippée. S’il est plus petit que le contrôle statique, l’espace vide autour de l’image est rempli avec la couleur d’arrière-plan du contrôle statique.

Exemple

CStatic myStatic;

// Create a child icon static control.
myStatic.Create(_T("my static"),
                WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE, CRect(10, 10, 150, 50),
                pParentWnd);

// If no icon is defined for the static control, define the icon
// to the system error icon.
if (myStatic.GetIcon() == NULL)
   myStatic.SetIcon(::LoadIcon(NULL, IDI_ERROR));

Voir aussi

CWnd Classe
Graphique hiérarchique
CWnd Classe
CButton Classe
CComboBox Classe
CEdit Classe
CListBox Classe
CScrollBar Classe
CDialog Classe