CStatic
Třída
Poskytuje funkce statického ovládacího prvku Windows.
Syntaxe
class CStatic : public CWnd
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CStatic::CStatic |
CStatic Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CStatic::Create |
Vytvoří statický ovládací prvek Windows a připojí ho k objektu CStatic . |
CStatic::DrawItem |
Přepsáním nakreslete statický ovládací prvek nakreslený vlastníkem. |
CStatic::GetBitmap |
Načte úchyt rastrového obrázku, který byl dříve nastaven pomocí SetBitmap . |
CStatic::GetCursor |
Načte úchyt obrázku kurzoru, který byl dříve nastaven pomocí SetCursor . |
CStatic::GetEnhMetaFile |
Načte popisovač rozšířeného metasouboru dříve nastavený pomocí SetEnhMetaFile . |
CStatic::GetIcon |
Načte popisovač ikony, která byla dříve nastavena pomocí SetIcon . |
CStatic::SetBitmap |
Určuje rastrový obrázek, který se má zobrazit ve statickém ovládacím prvku. |
CStatic::SetCursor |
Určuje obrázek kurzoru, který se má zobrazit ve statickém ovládacím prvku. |
CStatic::SetEnhMetaFile |
Určuje rozšířený metasoubor, který se má zobrazit ve statickém ovládacím prvku. |
CStatic::SetIcon |
Určuje ikonu, která se má zobrazit ve statickém ovládacím prvku. |
Poznámky
Statický ovládací prvek zobrazí textový řetězec, pole, obdélník, ikonu, kurzor, rastrový obrázek nebo rozšířený metasoubor. Dá se použít k označení, rámečku nebo oddělení jiných ovládacích prvků. Statický ovládací prvek obvykle nepřijímá žádný vstup a neposkytuje žádný výstup; ale může upozornit nadřazené kliknutí myší, pokud je vytvořen se stylem SS_NOTIFY
.
Vytvořte statický ovládací prvek ve dvou krocích. Nejprve zavolejte konstruktor, který vytvoří CStatic
objekt, a pak zavolá Create
člen funkce pro vytvoření statického ovládacího prvku a připojí ho k objektu CStatic
.
Pokud vytvoříte CStatic
objekt v dialogovém okně (prostřednictvím prostředku dialogového okna), CStatic
objekt se po zavření dialogového okna automaticky zničí.
Pokud v okně vytvoříte CStatic
objekt, budete ho možná muset také zničit. Objekt CStatic
vytvořený v zásobníku v okně se automaticky zničí. Pokud vytvoříte CStatic
objekt na haldě pomocí new
funkce, musíte volat delete
objekt, aby ho zničil, jakmile s ním skončíte.
Hierarchie dědičnosti
CStatic
Požadavky
Záhlaví: afxwin.h
CStatic::Create
Vytvoří statický ovládací prvek Windows a připojí ho k objektu CStatic
.
virtual BOOL Create(
LPCTSTR lpszText,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID = 0xffff);
Parametry
lpszText
Určuje text, který se má umístit do ovládacího prvku. Pokud NULL
se nezobrazí žádný text.
dwStyle
Určuje styl okna statického ovládacího prvku. U ovládacího prvku použijte libovolnou kombinaci stylů statických ovládacích prvků.
rect
Určuje umístění a velikost statického ovládacího prvku. Může to být RECT
struktura nebo CRect
objekt.
pParentWnd
Určuje CStatic
nadřazené okno, obvykle CDialog
objekt. Nesmí to být NULL
.
nID
Určuje ID ovládacího prvku statického ovládacího prvku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Vytvořte CStatic
objekt ve dvou krocích. Nejprve zavolejte konstruktor CStatic
a potom volání Create
, který vytvoří statický ovládací prvek Windows a připojí ho k objektu CStatic
.
U statického ovládacího prvku použijte následující styly oken:
WS_CHILD
VždyWS_VISIBLE
ObvykleWS_DISABLED
Zřídka
Pokud ve statickém ovládacím prvku zobrazíte rastrový obrázek, kurzor, ikonu nebo metasoubor, budete muset použít jeden z následujících statických stylů:
SS_BITMAP
Tento styl použijte pro rastrové obrázky.SS_ICON
Tento styl použijte pro kurzory a ikony.SS_ENHMETAFILE
Tento styl použijte pro vylepšené metasoubory.
U kurzorů, rastrových obrázků nebo ikon můžete také použít následující styl:
SS_CENTERIMAGE
Slouží ke středu obrázku ve statickém ovládacím prvku.
Příklad
// 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
CStatic
Vytvoří objekt.
CStatic();
Příklad
// Create a static object on the stack.
CStatic myStatic;
// Create a static object on the heap.
CStatic *pmyStatic = new CStatic;
CStatic::DrawItem
Volal ho architektura k vykreslení statického ovládacího prvku nakreslený vlastníkem.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
lpDrawItemStruct
Ukazatel na DRAWITEMSTRUCT
strukturu. Struktura obsahuje informace o položce, kterou chcete nakreslit, a typ požadovaného výkresu.
Poznámky
Přepsat tuto funkci pro implementaci výkresu pro objekt nakreslený CStatic
vlastníkem (ovládací prvek má styl SS_OWNERDRAW
).
CStatic::GetBitmap
Získá úchyt rastrového obrázku, dříve nastaven s SetBitmap
, který je přidružen CStatic
.
HBITMAP GetBitmap() const;
Návratová hodnota
Popisovač aktuálního rastrového obrázku nebo NULL
pokud nebyl nastaven žádný rastrový obrázek.
Příklad
// 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
Získá úchyt kurzoru, dříve nastaven s SetCursor
, který je přidružen CStatic
.
HCURSOR GetCursor();
Návratová hodnota
Úchyt aktuálního kurzoru nebo NULL
pokud nebyl nastaven žádný kurzor.
Příklad
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
Získá popisovač rozšířeného metasouboru, který byl dříve nastaven s SetEnhMetafile
, který je přidružen CStatic
.
HENHMETAFILE GetEnhMetaFile() const;
Návratová hodnota
Popisovač aktuálního rozšířeného metasouboru nebo NULL
pokud nebyl nastaven žádný rozšířený metasoubor.
Příklad
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
Získá úchyt ikony, dříve nastaven s SetIcon
, který je přidružen CStatic
.
HICON GetIcon() const;
Návratová hodnota
Popisovač aktuální ikony nebo NULL
pokud nebyla nastavena žádná ikona.
Příklad
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
Přidruží nový rastrový obrázek ke statickému ovládacímu prvku.
HBITMAP SetBitmap(HBITMAP hBitmap);
Parametry
hBitmap
Úchyt rastrového obrázku, který se má nakreslit ve statickém ovládacím prvku.
Návratová hodnota
Popisovač rastrového obrázku, který byl dříve přidružen ke statickému ovládacímu prvku, nebo NULL
pokud nebyl k statickému ovládacímu prvku přidružen žádný rastrový obrázek.
Poznámky
Rastrový obrázek se automaticky nakreslí ve statickém ovládacím prvku. Ve výchozím nastavení se nakreslí v levém horním rohu a statický ovládací prvek se změní na velikost rastrového obrázku.
Můžete použít různé styly oken a statických ovládacích prvků, včetně těchto:
SS_BITMAP
Tento styl používejte vždy pro rastrové obrázky.SS_CENTERIMAGE
Slouží ke středu obrázku ve statickém ovládacím prvku. Pokud je obrázek větší než statický ovládací prvek, vystřihne se. Pokud je menší než statický ovládací prvek, prázdné místo kolem obrázku se vyplní barvou pixelu v levém horním rohu rastrového obrázku.MFC poskytuje třídu
CBitmap
, kterou můžete použít, když potřebujete udělat více s rastrovým obrázkem, než jen volat funkciLoadBitmap
Win32 .CBitmap
, který obsahuje jeden druh objektu GDI, se často používá ve spolupráci sCStatic
, což jeCWnd
třída, která se používá k zobrazení grafického objektu jako statického ovládacího prvku.
CImage
je třída ATL/MFC, která umožňuje snadněji pracovat s rastrovými obrázky nezávislými na zařízení (DIB). Další informace naleznete v tématu CImage
Třída.
- Typické použití je poskytnout
CStatic::SetBitmap
GDI objekt, který je vrácen HBITMAP operátoremCBitmap
neboCImage
objektu. Kód, který to provede, se podobá následujícímu řádku.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
Následující příklad vytvoří dva CStatic
objekty v haldě. Pak načte jeden s systémovým rastrovým obrázkem pomocí CBitmap::LoadOEMBitmap
a druhý ze souboru pomocí CImage::Load
.
Příklad
// 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
Přidruží nový obrázek kurzoru ke statickému ovládacímu prvku.
HCURSOR SetCursor(HCURSOR hCursor);
Parametry
hCursor
Úchyt kurzoru, který se má nakreslit ve statickém ovládacím prvku.
Návratová hodnota
Úchyt kurzoru, který byl dříve přidružený ke statickému ovládacímu prvku, nebo NULL
pokud nebyl žádný kurzor přidružen ke statickému ovládacímu prvku.
Poznámky
Kurzor se automaticky nakreslí ve statickém ovládacím prvku. Ve výchozím nastavení se nakreslí v levém horním rohu a statický ovládací prvek se změní na velikost kurzoru.
Můžete použít různé styly oken a statických ovládacích prvků, včetně následujících:
SS_ICON
Tento styl používejte vždy pro kurzory a ikony.SS_CENTERIMAGE
Slouží ke středu statického ovládacího prvku. Pokud je obrázek větší než statický ovládací prvek, vystřihne se. Pokud je menší než statický ovládací prvek, prázdné místo kolem obrázku se vyplní barvou pozadí statického ovládacího prvku.
Příklad
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
Přidruží nový obrázek rozšířeného metasouboru ke statickému ovládacímu prvku.
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);
Parametry
hMetaFile
Úchyt rozšířeného metasouboru, který se má nakreslit ve statickém ovládacím prvku.
Návratová hodnota
Popisovač rozšířeného metasouboru, který byl dříve přidružen ke statickému ovládacímu prvku, nebo NULL
pokud nebyl k statickému ovládacímu prvku přidružen žádný rozšířený metasoubor.
Poznámky
Vylepšený metasoubor se automaticky nakreslí ve statickém ovládacím prvku. Vylepšený metasoubor se škáluje tak, aby odpovídal velikosti statického ovládacího prvku.
Můžete použít různé styly oken a statických ovládacích prvků, včetně následujících:
SS_ENHMETAFILE
Tento styl používejte vždy pro vylepšené metasoubory.
Příklad
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
Přidruží nový obrázek ikony ke statickému ovládacímu prvku.
HICON SetIcon(HICON hIcon);
Parametry
hIcon
Úchyt ikony, která se má nakreslit ve statickém ovládacím prvku
Návratová hodnota
Popisovač ikony, která byla dříve přidružena ke statickému ovládacímu prvku, nebo NULL
pokud nebyla k statickému ovládacímu prvku přidružena žádná ikona.
Poznámky
Ikona se automaticky nakreslí ve statickém ovládacím prvku. Ve výchozím nastavení se nakreslí v levém horním rohu a statický ovládací prvek se změní na velikost ikony.
Můžete použít různé styly oken a statických ovládacích prvků, včetně následujících:
SS_ICON
Tento styl používejte vždy pro kurzory a ikony.SS_CENTERIMAGE
Slouží ke středu statického ovládacího prvku. Pokud je obrázek větší než statický ovládací prvek, vystřihne se. Pokud je menší než statický ovládací prvek, prázdné místo kolem obrázku se vyplní barvou pozadí statického ovládacího prvku.
Příklad
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));
Viz také
CWnd
Třída
Graf hierarchie
CWnd
Třída
CButton
Třída
CComboBox
Třída
CEdit
Třída
CListBox
Třída
CScrollBar
Třída
CDialog
Třída