Megosztás a következőn keresztül:


CStatic osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

A Windows statikus vezérlő funkcióit biztosítja.

Szemantika

class CStatic : public CWnd

Tagok

Nyilvános konstruktorok

Név Description
CStatic::CStatic Egy CStatic objektumot hoz létre.

Nyilvános metódusok

Név Description
CStatic::Create Létrehozza a Windows statikus vezérlőt, és csatolja az CStatic objektumhoz.
CStatic::DrawItem Felülbírálás egy tulajdonos által rajzolt statikus vezérlő rajzolásához.
CStatic::GetBitmap Lekéri a korábban beállított bitkép fogópontját SetBitmap.
CStatic::GetCursor Lekéri a kurzor képének korábban beállított fogópontját SetCursor.
CStatic::GetEnhMetaFile Lekéri a korábban ezzel beállított továbbfejlesztett metafájl leíróját SetEnhMetaFile.
CStatic::GetIcon Lekéri a korábban beállított ikon fogópontját SetIcon.
CStatic::SetBitmap Megadja a statikus vezérlőben megjelenítendő bitképet.
CStatic::SetCursor A statikus vezérlőben megjelenítendő kurzorképet adja meg.
CStatic::SetEnhMetaFile A statikus vezérlőben megjelenítendő továbbfejlesztett metafájlt ad meg.
CStatic::SetIcon A statikus vezérlőben megjelenítendő ikont adja meg.

Megjegyzések

A statikus vezérlő szöveges sztringet, dobozt, téglalapot, ikont, kurzort, bitképet vagy továbbfejlesztett metafájlt jelenít meg. Más vezérlők címkézésére, dobozára vagy külön-külön is használható. A statikus vezérlők általában nem vesznek fel bemenetet, és nem ad kimenetet; azonban értesítheti a szülőjét az egérkattintásokról, ha stílussal SS_NOTIFY van létrehozva.

Hozzon létre egy statikus vezérlőt két lépésben. Először hívja meg a konstruktort az CStatic objektum létrehozásához, majd hívja meg a Create tagfüggvényt a statikus vezérlő létrehozásához és az CStatic objektumhoz való csatolásához.

Ha egy párbeszédpanelen (egy párbeszédpanel-erőforráson keresztül) hoz létre CStatic objektumot, a rendszer automatikusan megsemmisíti az CStatic objektumot, amikor a felhasználó bezárja a párbeszédpanelt.

Ha egy objektumot CStatic egy ablakban hoz létre, előfordulhat, hogy azt is el kell pusztítania. A CStatic veremen egy ablakban létrehozott objektum automatikusan megsemmisül. Ha a függvény használatával hozza létre az CStatic objektumot a new halomon, akkor a művelet befejezése után meg kell hívnia delete az objektumot, hogy semmisítse meg.

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CStatic

Requirements

Fejléc:afxwin.h

CStatic::Create

Létrehozza a Windows statikus vezérlőt, és csatolja az CStatic objektumhoz.

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

Paraméterek

lpszText
Megadja a vezérlőben elhelyezendő szöveget. Ha NULL, akkor a szöveg nem lesz látható.

dwStyle
A statikus vezérlő ablakstílusát adja meg. Alkalmazza a vezérlőre a statikus vezérlőstílusok bármilyen kombinációját.

rect
A statikus vezérlő pozícióját és méretét adja meg. Ez lehet egy RECT struktúra vagy objektum CRect .

pParentWnd
Megadja a CStatic szülőablakot, általában egy objektumot CDialog . Nem lehet NULL.

nID
Megadja a statikus vezérlő vezérlőazonosítóját.

Visszaadott érték

Nonzero, ha sikeres; egyéb esetben 0.

Megjegyzések

Hozzon létre egy objektumot CStatic két lépésben. Először hívja meg a konstruktort CStatic, majd hívja meg Create, amely létrehozza a Windows statikus vezérlőt, és csatolja az CStatic objektumhoz.

Alkalmazza a következő ablakstílusokat egy statikus vezérlőre:

  • WS_CHILD Mindig

  • WS_VISIBLE Általában

  • WS_DISABLED Ritkán

Ha bitképet, kurzort, ikont vagy metafájlt fog megjeleníteni a statikus vezérlőben, az alábbi statikus stílusok egyikét kell alkalmaznia:

  • SS_BITMAP Használja ezt a stílust bitképekhez.

  • SS_ICON Használja ezt a stílust a kurzorokhoz és ikonokhoz.

  • SS_ENHMETAFILE Használja ezt a stílust továbbfejlesztett metafájlokhoz.

A kurzorok, bitképek vagy ikonok esetében a következő stílust is érdemes használni:

  • SS_CENTERIMAGE A kép középre igazítása a statikus vezérlőben.

Example

// 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

Egy CStatic objektumot hoz létre.

CStatic();

Example

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

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

CStatic::DrawItem

A keretrendszer meghívta, hogy rajzoljon egy tulajdonos által rajzolt statikus vezérlőt.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Paraméterek

lpDrawItemStruct
Egy struktúra mutatója DRAWITEMSTRUCT . A struktúra információkat tartalmaz a megrajzolandó elemről és a szükséges rajz típusáról.

Megjegyzések

A függvény felülbírálása a tulajdonos által rajzolt CStatic objektumok rajzának implementálásához (a vezérlőelem stílusa SS_OWNERDRAW).

CStatic::GetBitmap

Lekéri a korábban a SetBitmaphozzá társított bitkép leíróját CStatic.

HBITMAP GetBitmap() const;

Visszaadott érték

Egy fogópont az aktuális bitképhez, vagy NULL ha nincs beállítva bitkép.

Example

// 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

Lekéri a kurzor korábban beállított SetCursorfogópontját, amely a következőhöz CStaticvan társítva: .

HCURSOR GetCursor();

Visszaadott érték

Egy fogópont az aktuális kurzorhoz, vagy NULL ha nincs beállítva kurzor.

Example

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

Lekéri a korábban a SetEnhMetafiletársított továbbfejlesztett metafájl leíróját CStatic.

HENHMETAFILE GetEnhMetaFile() const;

Visszaadott érték

Az aktuális továbbfejlesztett metafájl leírója, vagy NULL ha nincs beállítva továbbfejlesztett metafájl.

Example

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

Lekéri a korábban a SetIconhozzá társított ikon fogópontját CStatic.

HICON GetIcon() const;

Visszaadott érték

Egy fogópont az aktuális ikonhoz, vagy NULL ha nincs beállítva ikon.

Example

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

Új bitkép társítása a statikus vezérlővel.

HBITMAP SetBitmap(HBITMAP hBitmap);

Paraméterek

hBitmap
A statikus vezérlőben rajzolandó bitkép kezelése.

Visszaadott érték

A korábban a statikus vezérlőhöz társított bitkép leírója, vagy NULL ha a statikus vezérlőhöz nem társítottak bitképet.

Megjegyzések

A bitkép automatikusan megrajzolódik a statikus vezérlőben. Alapértelmezés szerint a rendszer a bal felső sarokban rajzolja meg, a statikus vezérlő pedig a bitkép méretére lesz átméretezve.

Különböző ablak- és statikus vezérlőstílusokat használhat, többek között az alábbiakat:

  • SS_BITMAP Ezt a stílust mindig bitképekhez használja.

  • SS_CENTERIMAGE A kép középre igazítása a statikus vezérlőben. Ha a kép nagyobb, mint a statikus vezérlő, a rendszer kivágja. Ha kisebb, mint a statikus vezérlő, a kép körüli üres területet a bitkép bal felső sarkában lévő képpont színe tölti ki.

  • Az MFC biztosítja az osztályt CBitmap, amelyet akkor használhat, ha többre van szüksége egy bitképképpel, mint a Win32 függvény LoadBitmapmeghívása. CBitmap, amely egyféle GDI-objektumot tartalmaz, gyakran használják a grafikus objektum statikus vezérlőként való megjelenítéséhez használt osztálykéntCStaticCWnd.

CImage EGY ATL/MFC-osztály, amely lehetővé teszi az eszközfüggetlen bitképek (DIB) egyszerűbb kezelését. További információ: CImage Osztály.

  • A tipikus használat egy GDI-objektum visszaadásaCStatic::SetBitmap, amelyet egy vagy CImage több CBitmap objektum HBITMAP-operátora ad vissza. Az ehhez a kódhoz hasonló a következő sor.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

Az alábbi példa két CStatic objektumot hoz létre a halomra. Ezután betölti az egyiket egy rendszerbitkép használatával CBitmap::LoadOEMBitmap , a másikat pedig egy fájlból CImage::Load.

Example

// 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

Új kurzorkép társítása a statikus vezérlővel.

HCURSOR SetCursor(HCURSOR hCursor);

Paraméterek

hCursor
A statikus vezérlőbe rajzolandó kurzor fogópontja.

Visszaadott érték

A korábban a statikus vezérlőhöz társított kurzor fogópontja, vagy NULL ha a statikus vezérlőhöz nem társították a kurzort.

Megjegyzések

A kurzor automatikusan megrajzolódik a statikus vezérlőben. Alapértelmezés szerint a program a bal felső sarokban rajzolja meg, a statikus vezérlő pedig a kurzor méretére lesz átméretezve.

Különböző ablak- és statikus vezérlőstílusokat használhat, többek között az alábbiakat:

  • SS_ICON Ezt a stílust mindig a kurzorokhoz és ikonokhoz használhatja.

  • SS_CENTERIMAGE A statikus vezérlő középre igazítása. Ha a kép nagyobb, mint a statikus vezérlő, a rendszer kivágja. Ha kisebb, mint a statikus vezérlő, a kép körüli üres terület a statikus vezérlő háttérszínével lesz kitöltve.

Example

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

Új továbbfejlesztett metafájlkép társítása a statikus vezérlővel.

HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);

Paraméterek

hMetaFile
A statikus vezérlőben rajzolandó továbbfejlesztett metafájl kezelése.

Visszaadott érték

A korábban a statikus vezérlőhöz társított továbbfejlesztett metafájl leírója, vagy NULL ha a statikus vezérlőhöz nem társított továbbfejlesztett metafájlt.

Megjegyzések

A továbbfejlesztett metafájl automatikusan megrajzolódik a statikus vezérlőben. A továbbfejlesztett metafájl mérete a statikus vezérlő méretéhez igazodik.

Különböző ablak- és statikus vezérlőstílusokat használhat, többek között az alábbiakat:

  • SS_ENHMETAFILE Ezt a stílust mindig továbbfejlesztett metafájlokhoz használhatja.

Example

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

Új ikonkép társítása a statikus vezérlővel.

HICON SetIcon(HICON hIcon);

Paraméterek

hIcon
A statikus vezérlőben rajzolandó ikon fogópontja.

Visszaadott érték

A statikus vezérlőhöz korábban társított ikon fogópontja, vagy NULL ha a statikus vezérlőhöz nincs ikon társítva.

Megjegyzések

Az ikon automatikusan megrajzolódik a statikus vezérlőben. Alapértelmezés szerint a bal felső sarokban lesz rajzolva, a statikus vezérlő pedig az ikon méretére lesz átméretezve.

Különböző ablak- és statikus vezérlőstílusokat használhat, többek között az alábbiakat:

  • SS_ICON Ezt a stílust mindig a kurzorokhoz és ikonokhoz használhatja.

  • SS_CENTERIMAGE A statikus vezérlő középre igazítása. Ha a kép nagyobb, mint a statikus vezérlő, a rendszer kivágja. Ha kisebb, mint a statikus vezérlő, a kép körüli üres terület a statikus vezérlő háttérszínével lesz kitöltve.

Example

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

Lásd még

CWnd osztály
hierarchiadiagram
CWnd osztály
CButton osztály
CComboBox osztály
CEdit osztály
CListBox osztály
CScrollBar osztály
CDialog osztály