CStatic
-Klasse
Stellt die Funktionalität eines statischen Windows-Steuerelements bereit.
Syntax
class CStatic : public CWnd
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CStatic::CStatic |
Erstellt ein CStatic -Objekt. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CStatic::Create |
Erstellt das statische Windows-Steuerelement und fügt es an das CStatic Objekt an. |
CStatic::DrawItem |
Überschreiben, um ein vom Besitzer gezeichnetes statisches Steuerelement zu zeichnen. |
CStatic::GetBitmap |
Ruft das Handle der zuvor festgelegten Bitmap mit SetBitmap . |
CStatic::GetCursor |
Ruft das Handle des Cursorbilds ab, das zuvor mit SetCursor . |
CStatic::GetEnhMetaFile |
Ruft das Handle der erweiterten Metadatei ab, die zuvor mit SetEnhMetaFile . |
CStatic::GetIcon |
Ruft das Handle des Zuvor festgelegten Symbols mit SetIcon . |
CStatic::SetBitmap |
Gibt eine Bitmap an, die im statischen Steuerelement angezeigt werden soll. |
CStatic::SetCursor |
Gibt ein Cursorbild an, das im statischen Steuerelement angezeigt werden soll. |
CStatic::SetEnhMetaFile |
Gibt eine erweiterte Metadatei an, die im statischen Steuerelement angezeigt werden soll. |
CStatic::SetIcon |
Gibt ein Symbol an, das im statischen Steuerelement angezeigt werden soll. |
Hinweise
Ein statisches Steuerelement zeigt eine Textzeichenfolge, ein Feld, ein Rechteck, ein Symbol, einen Cursor, eine Bitmap oder eine erweiterte Metadatei an. Sie kann zum Bezeichnen, Feld oder Trennen anderer Steuerelemente verwendet werden. Ein statisches Steuerelement akzeptiert normalerweise keine Eingabe und stellt keine Ausgabe bereit. Es kann jedoch das übergeordnete Element von Mausklicks benachrichtigen, wenn es mit SS_NOTIFY
Stil erstellt wird.
Erstellen Sie ein statisches Steuerelement in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, um das CStatic
Objekt zu erstellen, und rufen Sie dann die Create
Memberfunktion auf, um das statische Steuerelement zu erstellen und es an das CStatic
Objekt anzufügen.
Wenn Sie ein CStatic
Objekt in einem Dialogfeld (über eine Dialogressource) erstellen, wird das CStatic
Objekt automatisch zerstört, wenn der Benutzer das Dialogfeld schließt.
Wenn Sie ein CStatic
Objekt in einem Fenster erstellen, müssen Sie es möglicherweise auch zerstören. Ein CStatic
im Stapel innerhalb eines Fensters erstelltes Objekt wird automatisch zerstört. Wenn Sie das CStatic
Objekt auf dem Heap mithilfe der new
Funktion erstellen, müssen Sie das Objekt aufrufen delete
, um es zu zerstören, wenn Sie damit fertig sind.
Vererbungshierarchie
CStatic
Anforderungen
Header: afxwin.h
CStatic::Create
Erstellt das statische Windows-Steuerelement und fügt es an das CStatic
Objekt an.
virtual BOOL Create(
LPCTSTR lpszText,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID = 0xffff);
Parameter
lpszText
Gibt den Text an, der im Steuerelement platziert werden soll. Wenn NULL
, wird kein Text angezeigt.
dwStyle
Gibt die Fensterformatvorlage des statischen Steuerelements an. Wenden Sie eine beliebige Kombination statischer Steuerelementformatvorlagen auf das Steuerelement an.
rect
Gibt die Position und Größe des statischen Steuerelements an. Es kann sich um eine RECT
Struktur oder ein CRect
Objekt handeln.
pParentWnd
Gibt das übergeordnete Fenster an, in der CStatic
Regel ein CDialog
Objekt. Es darf nicht sein NULL
.
nID
Gibt die Steuerelement-ID des statischen Steuerelements an.
Rückgabewert
Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).
Hinweise
Erstellen Sie ein CStatic
Objekt in zwei Schritten. Rufen Sie zuerst den Konstruktor CStatic
auf, und rufen Sie dann das Create
statische Windows-Steuerelement auf, und fügt es an das CStatic
Objekt an.
Wenden Sie die folgenden Fensterformatvorlagen auf ein statisches Steuerelement an:
WS_CHILD
ImmerWS_VISIBLE
GewöhnlichWS_DISABLED
Selten
Wenn Sie eine Bitmap, einen Cursor, ein Symbol oder eine Metadatei im statischen Steuerelement anzeigen möchten, müssen Sie eine der folgenden statischen Formatvorlagen anwenden:
SS_BITMAP
Verwenden Sie diese Formatvorlage für Bitmaps.SS_ICON
Verwenden Sie diese Formatvorlage für Cursor und Symbole.SS_ENHMETAFILE
Verwenden Sie diese Formatvorlage für erweiterte Metadateien.
Bei Cursorn, Bitmaps oder Symbolen können Sie auch die folgende Formatvorlage verwenden:
SS_CENTERIMAGE
Wird verwendet, um das Bild im statischen Steuerelement zu zentrieren.
Beispiel
// 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
Erstellt ein CStatic
-Objekt.
CStatic();
Beispiel
// Create a static object on the stack.
CStatic myStatic;
// Create a static object on the heap.
CStatic *pmyStatic = new CStatic;
CStatic::DrawItem
Vom Framework aufgerufen, um ein vom Besitzer gezeichnetes statisches Steuerelement zu zeichnen.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parameter
lpDrawItemStruct
Ein Zeiger auf eine DRAWITEMSTRUCT
Struktur. Die Struktur enthält Informationen über das zu zeichnende Element und den erforderlichen Zeichnungstyp.
Hinweise
Überschreiben Sie diese Funktion, um die Zeichnung für ein besitzergezeichnetes CStatic
Objekt zu implementieren (das Steuerelement weist die Formatvorlage SS_OWNERDRAW
auf).
CStatic::GetBitmap
Ruft das Handle der Bitmap, zuvor festgelegt mit SetBitmap
, das zugeordnet CStatic
ist .
HBITMAP GetBitmap() const;
Rückgabewert
Ein Handle für die aktuelle Bitmap oder NULL
wenn keine Bitmap festgelegt wurde.
Beispiel
// 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
Ruft das Handle des Cursors ab, der zuvor festgelegt SetCursor
ist, das zugeordnet CStatic
ist.
HCURSOR GetCursor();
Rückgabewert
Ein Handle für den aktuellen Cursor oder NULL
wenn kein Cursor festgelegt wurde.
Beispiel
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
Ruft das Handle der erweiterten Metadatei, zuvor festgelegt mit SetEnhMetafile
, das zugeordnet CStatic
ist .
HENHMETAFILE GetEnhMetaFile() const;
Rückgabewert
Ein Handle für die aktuelle erweiterte Metadatei oder NULL
wenn keine erweiterte Metadatei festgelegt wurde.
Beispiel
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
Ruft das Handle des Symbols, zuvor festgelegt mit SetIcon
, das zugeordnet CStatic
ist .
HICON GetIcon() const;
Rückgabewert
Ein Handle zum aktuellen Symbol oder NULL
wenn kein Symbol festgelegt wurde.
Beispiel
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
Ordnet eine neue Bitmap dem statischen Steuerelement zu.
HBITMAP SetBitmap(HBITMAP hBitmap);
Parameter
hBitmap
Handle der Bitmap, die im statischen Steuerelement gezeichnet werden soll.
Rückgabewert
Das Handle der Bitmap, die zuvor dem statischen Steuerelement zugeordnet war, oder NULL
wenn dem statischen Steuerelement keine Bitmap zugeordnet war.
Hinweise
Die Bitmap wird automatisch im statischen Steuerelement gezeichnet. Standardmäßig wird es in der oberen linken Ecke gezeichnet, und das statische Steuerelement wird in der Größe der Bitmap geändert.
Sie können verschiedene Fenster- und statische Steuerelementstile verwenden, einschließlich der folgenden:
SS_BITMAP
Verwenden Sie diese Formatvorlage immer für Bitmaps.SS_CENTERIMAGE
Wird verwendet, um das Bild im statischen Steuerelement zu zentrieren. Wenn das Bild größer als das statische Steuerelement ist, wird es abgeschnitten. Wenn es kleiner als das statische Steuerelement ist, wird der leere Bereich um das Bild durch die Farbe des Pixels in der oberen linken Ecke der Bitmap gefüllt.MFC stellt die Klasse
CBitmap
bereit, die Sie verwenden können, wenn Sie mehr mit einem Bitmapbild tun müssen, als nur die Win32-FunktionLoadBitmap
aufzurufen.CBitmap
, das eine Art von GDI-Objekt enthält, wird häufig in Zusammenarbeit mitCStatic
verwendet , bei der es sich um eineCWnd
Klasse handelt, die zum Anzeigen eines Grafikobjekts als statisches Steuerelement verwendet wird.
CImage
ist eine ATL/MFC-Klasse, mit der Sie einfacher mit geräteunabhängigen Bitmaps (DIB) arbeiten können. Weitere Informationen finden Sie unter CImage
"Klasse".
- Die typische Verwendung besteht darin, einem GDI-Objekt zu geben
CStatic::SetBitmap
, das vom HBITMAP-Operator einesCBitmap
objektsCImage
zurückgegeben wird. Der zu tunde Code ähnelt der folgenden Zeile.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
Im folgenden Beispiel werden zwei CStatic
Objekte im Heap erstellt. Anschließend wird eine mit einer Systembitmap und CBitmap::LoadOEMBitmap
die andere aus einer Datei geladen, CImage::Load
die verwendet wird.
Beispiel
// 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
Ordnet ein neues Cursorbild dem statischen Steuerelement zu.
HCURSOR SetCursor(HCURSOR hCursor);
Parameter
hCursor
Handle des Cursors, der im statischen Steuerelement gezeichnet werden soll.
Rückgabewert
Der Ziehpunkt des Cursors, der zuvor dem statischen Steuerelement zugeordnet war, oder NULL
wenn dem statischen Steuerelement kein Cursor zugeordnet war.
Hinweise
Der Cursor wird automatisch im statischen Steuerelement gezeichnet. Standardmäßig wird es in der oberen linken Ecke gezeichnet, und das statische Steuerelement wird in der Größe des Cursors geändert.
Sie können verschiedene Fenster- und statische Steuerelementstile verwenden, einschließlich der folgenden:
SS_ICON
Verwenden Sie diese Formatvorlage immer für Cursor und Symbole.SS_CENTERIMAGE
Wird verwendet, um im statischen Steuerelement zu zentrieren. Wenn das Bild größer als das statische Steuerelement ist, wird es abgeschnitten. Wenn es kleiner als das statische Steuerelement ist, wird der leere Bereich um das Bild mit der Hintergrundfarbe des statischen Steuerelements gefüllt.
Beispiel
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
Ordnet ein neues erweitertes Metadateibild dem statischen Steuerelement zu.
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);
Parameter
hMetaFile
Handle der erweiterten Metadatei, die im statischen Steuerelement gezeichnet werden soll.
Rückgabewert
Das Handle der erweiterten Metadatei, die zuvor dem statischen Steuerelement zugeordnet war, oder NULL
wenn dem statischen Steuerelement keine erweiterte Metadatei zugeordnet war.
Hinweise
Die erweiterte Metadatei wird automatisch im statischen Steuerelement gezeichnet. Die erweiterte Metadatei wird skaliert, um die Größe des statischen Steuerelements anzupassen.
Sie können verschiedene Fenster- und statische Steuerelementstile verwenden, einschließlich der folgenden:
SS_ENHMETAFILE
Verwenden Sie diese Formatvorlage immer für erweiterte Metadateien.
Beispiel
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
Ordnet dem statischen Steuerelement ein neues Symbolbild zu.
HICON SetIcon(HICON hIcon);
Parameter
hIcon
Handle des Symbols, das im statischen Steuerelement gezeichnet werden soll.
Rückgabewert
Der Ziehpunkt des Symbols, das zuvor dem statischen Steuerelement zugeordnet war, oder NULL
wenn dem statischen Steuerelement kein Symbol zugeordnet war.
Hinweise
Das Symbol wird automatisch im statischen Steuerelement gezeichnet. Standardmäßig wird es in der oberen linken Ecke gezeichnet, und das statische Steuerelement wird in der Größe des Symbols geändert.
Sie können verschiedene Fenster- und statische Steuerelementstile verwenden, einschließlich der folgenden:
SS_ICON
Verwenden Sie diese Formatvorlage immer für Cursor und Symbole.SS_CENTERIMAGE
Wird verwendet, um im statischen Steuerelement zu zentrieren. Wenn das Bild größer als das statische Steuerelement ist, wird es abgeschnitten. Wenn es kleiner als das statische Steuerelement ist, wird der leere Bereich um das Bild mit der Hintergrundfarbe des statischen Steuerelements gefüllt.
Beispiel
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));
Siehe auch
CWnd
Klasse
Hierarchiediagramm
CWnd
Klasse
CButton
Klasse
CComboBox
Klasse
CEdit
Klasse
CListBox
Klasse
CScrollBar
Klasse
CDialog
Klasse