Share via


CStatic-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt de functionaliteit van een statisch Besturingselement van Windows.

Syntaxis

class CStatic : public CWnd

Leden

Openbare constructors

Naam Description
CStatic::CStatic Maakt een CStatic object.

Openbare methoden

Naam Description
CStatic::Create Hiermee maakt u het statische Besturingselement van Windows en koppelt u het aan het CStatic object.
CStatic::DrawItem Overschrijven om een door de eigenaar getekend statisch besturingselement te tekenen.
CStatic::GetBitmap Haalt de ingang van de bitmap op die eerder is ingesteld met SetBitmap.
CStatic::GetCursor Haalt de ingang van de cursorafbeelding op die eerder is ingesteld met SetCursor.
CStatic::GetEnhMetaFile Haalt de ingang op van het verbeterde metabestand dat eerder is ingesteld met SetEnhMetaFile.
CStatic::GetIcon Haalt de ingang van het pictogram op dat eerder is ingesteld met SetIcon.
CStatic::SetBitmap Hiermee geeft u een bitmap op die moet worden weergegeven in het statische besturingselement.
CStatic::SetCursor Hiermee geeft u een cursorafbeelding die moet worden weergegeven in het statische besturingselement.
CStatic::SetEnhMetaFile Hiermee geeft u een uitgebreid metabestand dat moet worden weergegeven in het statische besturingselement.
CStatic::SetIcon Hiermee geeft u een pictogram op dat moet worden weergegeven in het statische besturingselement.

Opmerkingen

In een statisch besturingselement wordt een tekenreeks, vak, rechthoek, pictogram, cursor, bitmap of uitgebreid metabestand weergegeven. Het kan worden gebruikt om andere besturingselementen te labelen, te gebruiken of te scheiden. Een statisch besturingselement heeft normaal gesproken geen invoer en levert geen uitvoer; het kan echter de bovenliggende muisklikken waarschuwen als deze is gemaakt met SS_NOTIFY stijl.

Maak in twee stappen een statisch besturingselement. Roep eerst de constructor aan om het CStatic object te maken, roep vervolgens de Create lidfunctie aan om het statische besturingselement te maken en deze aan het CStatic object te koppelen.

Als u een CStatic object in een dialoogvenster maakt (via een dialoogvensterresource), wordt het CStatic object automatisch vernietigd wanneer de gebruiker het dialoogvenster sluit.

Als u een CStatic object in een venster maakt, moet u het mogelijk ook vernietigen. Een CStatic object dat in een venster op de stapel is gemaakt, wordt automatisch vernietigd. Als u het CStatic object op de heap maakt met behulp van de new functie, moet u het object aanroepen delete om het te vernietigen wanneer u er klaar mee bent.

Overnamehiƫrarchie

CObject

CCmdTarget

CWnd

CStatic

Requirements

Rubriek:afxwin.h

CStatic::Create

Hiermee maakt u het statische Besturingselement van Windows en koppelt u het aan het CStatic object.

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

Parameterwaarden

lpszText
Hiermee geeft u de tekst op die in het besturingselement moet worden opgeslagen. Als NULLer geen tekst zichtbaar is.

dwStyle
Hiermee geeft u de vensterstijl van het statische besturingselement op. Pas een combinatie van statische besturingsstijlen toe op het besturingselement.

rect
Hiermee geeft u de positie en grootte van het statische besturingselement. Het kan een RECT structuur of een CRect object zijn.

pParentWnd
Hiermee geeft u het CStatic bovenliggende venster, meestal een CDialog object. Het mag niet zijn NULL.

nID
Hiermee geeft u de besturingselement-id van het statische besturingselement op.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Maak een CStatic object in twee stappen. Roep eerst de constructor CStaticaan en roep Createvervolgens het statische Besturingselement van Windows aan en koppelt het aan het CStatic object.

Pas de volgende vensterstijlen toe op een statisch besturingselement:

  • WS_CHILD Altijd

  • WS_VISIBLE Gewoonlijk

  • WS_DISABLED Zelden

Als u een bitmap, cursor, pictogram of metabestand wilt weergeven in het statische besturingselement, moet u een van de volgende statische stijlen toepassen:

  • SS_BITMAP Gebruik deze stijl voor bitmaps.

  • SS_ICON Gebruik deze stijl voor cursors en pictogrammen.

  • SS_ENHMETAFILE Gebruik deze stijl voor verbeterde metabestanden.

Voor cursors, bitmaps of pictogrammen kunt u ook de volgende stijl gebruiken:

  • SS_CENTERIMAGE Gebruik dit om de afbeelding in het statische besturingselement te centreren.

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

Maakt een CStatic object.

CStatic();

Example

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

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

CStatic::DrawItem

Aangeroepen door het framework om een door de eigenaar getekend statisch besturingselement te tekenen.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameterwaarden

lpDrawItemStruct
Een aanwijzer naar een DRAWITEMSTRUCT structuur. De structuur bevat informatie over het te tekenen item en het type tekening dat nodig is.

Opmerkingen

Overschrijf deze functie om tekening te implementeren voor een door de eigenaar getekend CStatic object (het besturingselement heeft de stijl SS_OWNERDRAW).

CStatic::GetBitmap

Hiermee haalt u de greep van de bitmap op, die eerder is ingesteld met SetBitmap, die is gekoppeld aan CStatic.

HBITMAP GetBitmap() const;

Retourwaarde

Een greep naar de huidige bitmap of NULL als er geen bitmap is ingesteld.

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

Hiermee haalt u de ingang van de cursor op, die eerder is ingesteld met SetCursor, die is gekoppeld aan CStatic.

HCURSOR GetCursor();

Retourwaarde

Een ingang naar de huidige cursor of NULL als er geen cursor is ingesteld.

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

Hiermee haalt u de ingang op van het verbeterde metabestand, eerder ingesteld met SetEnhMetafile, dat is gekoppeld aan CStatic.

HENHMETAFILE GetEnhMetaFile() const;

Retourwaarde

Een ingang naar het huidige verbeterde metabestand of NULL als er geen uitgebreid metabestand is ingesteld.

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

Hiermee haalt u de ingang van het pictogram op, eerder ingesteld met SetIcon, dat is gekoppeld aan CStatic.

HICON GetIcon() const;

Retourwaarde

Een ingang naar het huidige pictogram of NULL als er geen pictogram is ingesteld.

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

Hiermee koppelt u een nieuwe bitmap aan het statische besturingselement.

HBITMAP SetBitmap(HBITMAP hBitmap);

Parameterwaarden

hBitmap
Greep van de bitmap die moet worden getekend in het statische besturingselement.

Retourwaarde

De greep van de bitmap die eerder aan het statische besturingselement was gekoppeld of NULL als er geen bitmap aan het statische besturingselement was gekoppeld.

Opmerkingen

De bitmap wordt automatisch getekend in het statische besturingselement. Deze wordt standaard getekend in de linkerbovenhoek en het statische besturingselement wordt aangepast aan de grootte van de bitmap.

U kunt verschillende venster- en statische besturingsstijlen gebruiken, waaronder:

  • SS_BITMAP Gebruik deze stijl altijd voor bitmaps.

  • SS_CENTERIMAGE Gebruik dit om de afbeelding in het statische besturingselement te centreren. Als de afbeelding groter is dan het statische besturingselement, wordt deze geknipt. Als deze kleiner is dan het statische besturingselement, wordt de lege ruimte rond de afbeelding gevuld met de kleur van de pixel in de linkerbovenhoek van de bitmap.

  • MFC biedt de klasse CBitmap, die u kunt gebruiken wanneer u meer moet doen met een bitmapafbeelding dan alleen de Win32-functie LoadBitmapaanroepen. CBitmap, dat een soort GDI-object bevat, wordt vaak gebruikt in samenwerking met CStatic, een CWnd klasse die wordt gebruikt voor het weergeven van een grafisch object als een statisch besturingselement.

CImage is een ATL/MFC-klasse waarmee u eenvoudiger kunt werken met apparaatonafhankelijke bitmaps (DIB). Zie CImage Class voor meer informatie.

  • Normaal gebruik is het geven CStatic::SetBitmap van een GDI-object dat wordt geretourneerd door de HBITMAP-operator van een CBitmap of CImage object. De code hiervoor lijkt op de volgende regel.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

In het volgende voorbeeld worden twee CStatic objecten op de heap gemaakt. Vervolgens wordt er een geladen met een systeem bitmap met behulp van CBitmap::LoadOEMBitmap en de andere uit een bestand met behulp van 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

Hiermee koppelt u een nieuwe cursorafbeelding aan het statische besturingselement.

HCURSOR SetCursor(HCURSOR hCursor);

Parameterwaarden

hCursor
Greep van de cursor die moet worden getekend in het statische besturingselement.

Retourwaarde

De greep van de cursor die eerder aan het statische besturingselement is gekoppeld of NULL als er geen cursor aan het statische besturingselement is gekoppeld.

Opmerkingen

De cursor wordt automatisch getekend in het statische besturingselement. Deze wordt standaard getekend in de linkerbovenhoek en het statische besturingselement wordt aangepast aan de grootte van de cursor.

U kunt verschillende venster- en statische besturingsstijlen gebruiken, waaronder de volgende:

  • SS_ICON Gebruik deze stijl altijd voor cursors en pictogrammen.

  • SS_CENTERIMAGE Gebruik dit om te centreren in het statische besturingselement. Als de afbeelding groter is dan het statische besturingselement, wordt deze geknipt. Als het kleiner is dan het statische besturingselement, wordt de lege ruimte rond de afbeelding gevuld met de achtergrondkleur van het statische besturingselement.

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

Koppelt een nieuwe verbeterde metafile-installatiekopieƫn aan het statische besturingselement.

HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);

Parameterwaarden

hMetaFile
Greep van het verbeterde metabestand dat moet worden getekend in het statische besturingselement.

Retourwaarde

De ingang van het verbeterde metabestand dat eerder aan het statische besturingselement was gekoppeld of NULL als er geen uitgebreid metabestand aan het statische besturingselement is gekoppeld.

Opmerkingen

Het verbeterde metabestand wordt automatisch getekend in het statische besturingselement. Het verbeterde metabestand wordt geschaald om de grootte van het statische besturingselement aan te passen.

U kunt verschillende venster- en statische besturingsstijlen gebruiken, waaronder de volgende:

  • SS_ENHMETAFILE Gebruik deze stijl altijd voor verbeterde metabestanden.

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

Hiermee koppelt u een nieuwe pictogramafbeelding aan het statische besturingselement.

HICON SetIcon(HICON hIcon);

Parameterwaarden

hIcon
Greep van het pictogram dat moet worden getekend in het statische besturingselement.

Retourwaarde

De ingang van het pictogram dat eerder aan het statische besturingselement is gekoppeld of NULL als er geen pictogram aan het statische besturingselement is gekoppeld.

Opmerkingen

Het pictogram wordt automatisch getekend in het statische besturingselement. Deze wordt standaard getekend in de linkerbovenhoek en het statische besturingselement wordt aangepast aan de grootte van het pictogram.

U kunt verschillende venster- en statische besturingsstijlen gebruiken, waaronder de volgende:

  • SS_ICON Gebruik deze stijl altijd voor cursors en pictogrammen.

  • SS_CENTERIMAGE Gebruik dit om te centreren in het statische besturingselement. Als de afbeelding groter is dan het statische besturingselement, wordt deze geknipt. Als het kleiner is dan het statische besturingselement, wordt de lege ruimte rond de afbeelding gevuld met de achtergrondkleur van het statische besturingselement.

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

Zie ook

CWnd klasse
Hiƫrarchiegrafiek
CWnd klasse
CButton klasse
CComboBox klasse
CEdit klasse
CListBox klasse
CScrollBar klasse
CDialog klasse