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
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
ToujoursWS_VISIBLE
HabituellementWS_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 fonctionLoadBitmap
Win32 .CBitmap
, qui contient un type d’objet GDI, est souvent utilisé en coopération avecCStatic
, qui est uneCWnd
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 ouCImage
d’unCBitmap
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::Load
de .
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