Aracılığıyla paylaş


CStatic Sınıf

Windows statik denetiminin işlevselliğini sağlar.

Sözdizimi

class CStatic : public CWnd

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CStatic::CStatic Bir CStatic nesne oluşturur.

Genel Yöntemler

Veri Akışı Adı Açıklama
CStatic::Create Windows statik denetimini oluşturur ve nesnesine CStatic ekler.
CStatic::DrawItem Sahip tarafından çizilmiş statik denetim çizmek için geçersiz kılın.
CStatic::GetBitmap Önceden ile SetBitmapayarlanan bit eşlem tutamacını alır.
CStatic::GetCursor önceden ile SetCursorayarlanan imleç görüntüsünün tutamacını alır.
CStatic::GetEnhMetaFile Daha önce ile SetEnhMetaFileayarlanan gelişmiş meta dosyasının tutamacını alır.
CStatic::GetIcon Önceden ile SetIconayarlanan simgenin tutamacını alır.
CStatic::SetBitmap Statik denetimde görüntülenecek bit eşlemi belirtir.
CStatic::SetCursor Statik denetimde görüntülenecek imleç görüntüsünü belirtir.
CStatic::SetEnhMetaFile Statik denetimde görüntülenecek gelişmiş bir meta dosyası belirtir.
CStatic::SetIcon Statik denetimde görüntülenecek simgeyi belirtir.

Açıklamalar

Statik denetim bir metin dizesi, kutu, dikdörtgen, simge, imleç, bit eşlem veya gelişmiş meta dosyası görüntüler. Diğer denetimleri etiketlemek, işaretlemek veya ayırmak için kullanılabilir. Statik denetim normalde giriş almaz ve çıkış sağlamaz; ancak, stille SS_NOTIFY oluşturulduysa fare tıklamalarının üst öğesini bilgilendirebilir.

İki adımda statik denetim oluşturun. İlk olarak, nesnesini oluşturmak için oluşturucuyu çağırın CStatic , ardından statik denetimi oluşturmak ve nesneye eklemek için üye işlevini çağırın Create CStatic .

İletişim kutusunda (iletişim kutusu kaynağı aracılığıyla) bir CStatic nesne oluşturursanız, CStatic kullanıcı iletişim kutusunu kapattığında nesne otomatik olarak yok edilir.

Pencere içinde bir CStatic nesne oluşturursanız, nesneyi yok etmeniz de gerekebilir. Bir CStatic pencere içindeki yığında oluşturulan bir nesne otomatik olarak yok edilir. işlevini kullanarak new öbek üzerinde nesnesi oluşturursanızCStatic, nesneyle işiniz bittiğinde yok etmek için nesneyi çağırmanız delete gerekir.

Devralma Hiyerarşisi

CObject

CCmdTarget

CWnd

CStatic

Gereksinimler

Üstbilgi: afxwin.h

CStatic::Create

Windows statik denetimini oluşturur ve nesnesine CStatic ekler.

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

Parametreler

lpszText
Denetime yerleştirecek metni belirtir. ise NULL, hiçbir metin görünmez.

dwStyle
Statik denetimin pencere stilini belirtir. Denetime statik denetim stillerinin herhangi bir bileşimini uygulayın.

rect
Statik denetimin konumunu ve boyutunu belirtir. Bir yapı veya CRect nesne olabilirRECT.

pParentWnd
CStatic Üst pencereyi( genellikle bir CDialog nesne) belirtir. Bu olmamalıdır NULL.

nID
Statik denetimin denetim kimliğini belirtir.

Dönüş Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

İki adımda bir CStatic nesne oluşturun. İlk olarak oluşturucuyu çağırın CStaticve ardından Windows statik denetimini oluşturan ve nesnesine ekleyen öğesini çağırınCreateCStatic.

Statik denetime aşağıdaki pencere stillerini uygulayın:

  • WS_CHILD Her zaman

  • WS_VISIBLE Genelde

  • WS_DISABLED Nadiren

Statik denetimde bit eşlem, imleç, simge veya meta dosyası görüntüleyecekseniz, aşağıdaki statik stillerden birini uygulamanız gerekir:

  • SS_BITMAP Bit eşlemler için bu stili kullanın.

  • SS_ICON İmleçler ve simgeler için bu stili kullanın.

  • SS_ENHMETAFILE Gelişmiş meta dosyaları için bu stili kullanın.

İmleçler, bit eşlemler veya simgeler için aşağıdaki stili de kullanmak isteyebilirsiniz:

  • SS_CENTERIMAGE Statik denetimdeki görüntüyü ortalamak için kullanın.

Örnek

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

Bir CStatic nesne oluşturur.

CStatic();

Örnek

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

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

CStatic::DrawItem

Sahip tarafından çizilmiş statik denetim çizmek için çerçeve tarafından çağrılır.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parametreler

lpDrawItemStruct
Bir yapıya işaretçi DRAWITEMSTRUCT . Yapı, çizilecek öğe ve gerekli çizim türü hakkında bilgi içerir.

Açıklamalar

Sahip tarafından çizilmiş CStatic bir nesne için çizim uygulamak için bu işlevi geçersiz kılın (denetimin stili SS_OWNERDRAWvardır).

CStatic::GetBitmap

ile ilişkilendirilmiş CStaticolan bit eşleminin daha önce ile SetBitmapayarlanan tutamacını alır.

HBITMAP GetBitmap() const;

Dönüş Değeri

Geçerli bit eşlem için bir tanıtıcı veya NULL bit eşlem ayarlanmamışsa.

Örnek

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

daha önce ile ayarlanmış olan ve ile SetCursorCStaticilişkilendirilmiş olan imlecin tutamacını alır.

HCURSOR GetCursor();

Dönüş Değeri

Geçerli imlecin tutamacı veya NULL hiçbir imleç ayarlanmamışsa.

Örnek

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

ile ilişkilendirilmişCStatic, daha önce ile SetEnhMetafileayarlanmış gelişmiş meta dosyasının tutamacını alır.

HENHMETAFILE GetEnhMetaFile() const;

Dönüş Değeri

Geçerli geliştirilmiş meta dosyasının tanıtıcısı veya NULL gelişmiş meta dosyası ayarlanmamışsa.

Örnek

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

daha önce ile SetIconayarlanmış ve ile CStaticilişkilendirilmiş olan simgenin tutamacını alır.

HICON GetIcon() const;

Dönüş Değeri

Geçerli simgenin tutamacı veya NULL herhangi bir simge ayarlanmamışsa.

Örnek

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

Yeni bit eşlemi statik denetimle ilişkilendirir.

HBITMAP SetBitmap(HBITMAP hBitmap);

Parametreler

hBitmap
Statik denetimde çizilecek bit eşlem tutamacı.

Dönüş Değeri

Daha önce statik denetimle ilişkilendirilmiş bit eşlem tutamacı veya NULL statik denetimle ilişkilendirilmiş bit eşlem yoksa.

Açıklamalar

Bit eşlem statik denetimde otomatik olarak çizilir. Varsayılan olarak, sol üst köşeye çizilir ve statik denetim bit eşlem boyutuna göre yeniden boyutlandırılır.

Aşağıdakiler de dahil olmak üzere çeşitli pencere ve statik denetim stilleri kullanabilirsiniz:

  • SS_BITMAP Bit eşlemler için her zaman bu stili kullanın.

  • SS_CENTERIMAGE Statik denetimdeki görüntüyü ortalamak için kullanın. Görüntü statik denetimden büyükse kırpılır. Statik denetimden küçükse, görüntünün etrafındaki boş alan bit eşlemin sol üst köşesindeki pikselin rengiyle doldurulur.

  • MFC, bit eşlem görüntüsüyle win32 işlevini LoadBitmapçağırmaktan daha fazlasını yapmanız gerektiğinde kullanabileceğiniz sınıfını CBitmapsağlar. CBitmap, bir tür GDI nesnesi içeren, genellikle bir grafik nesnesini statik denetim olarak görüntülemek için kullanılan bir CWnd sınıf olan ile CStaticişbirliği içinde kullanılır.

CImage , cihazdan bağımsız bit eşlemlerle (DIB) daha kolay çalışmanızı sağlayan bir ATL/MFC sınıfıdır. Daha fazla bilgi için bkz CImage . Sınıf.

  • Tipik kullanım, bir veya CImage nesnesinin HBITMAP işleci tarafından döndürülen bir CBitmap GDI nesnesi vermektirCStatic::SetBitmap. Bunu yapmak için kod aşağıdaki satıra benzer.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));

Aşağıdaki örnek yığında iki CStatic nesne oluşturur. Ardından kullanarak birini sistem bit eşlemi CBitmap::LoadOEMBitmap ile, diğerini kullanarak CImage::Loadbir dosyadan yükler.

Örnek

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

Yeni bir imleç görüntüsünü statik denetimle ilişkilendirir.

HCURSOR SetCursor(HCURSOR hCursor);

Parametreler

hCursor
Statik denetimde çizilecek imlecin tutamacı.

Dönüş Değeri

daha önce statik denetimle ilişkilendirilmiş olan veya NULL statik denetimle ilişkilendirilmiş imleç yoksa imlecin tutamacı.

Açıklamalar

İmleç statik denetimde otomatik olarak çizilir. Varsayılan olarak, sol üst köşeye çizilir ve statik denetim imlecin boyutuna göre yeniden boyutlandırılır.

Aşağıdakiler de dahil olmak üzere çeşitli pencere ve statik denetim stilleri kullanabilirsiniz:

  • SS_ICON İmleçler ve simgeler için her zaman bu stili kullanın.

  • SS_CENTERIMAGE Statik denetimi ortalamak için kullanın. Görüntü statik denetimden büyükse kırpılır. Statik denetimden küçükse, görüntünün etrafındaki boş alan statik denetimin arka plan rengiyle doldurulur.

Örnek

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

Yeni bir gelişmiş meta dosyası görüntüsünü statik denetimle ilişkilendirir.

HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);

Parametreler

hMetaFile
Statik denetimde çizilecek gelişmiş meta dosyasının tanıtıcısı.

Dönüş Değeri

Daha önce statik denetimle ilişkilendirilmiş gelişmiş meta dosyasının tutamacı veya NULL statik denetimle ilişkilendirilmiş gelişmiş meta dosyası yoksa.

Açıklamalar

Gelişmiş meta dosyası statik denetimde otomatik olarak çizilir. Geliştirilmiş meta dosyası, statik denetimin boyutuna uyacak şekilde ölçeklendirilir.

Aşağıdakiler de dahil olmak üzere çeşitli pencere ve statik denetim stilleri kullanabilirsiniz:

  • SS_ENHMETAFILE Gelişmiş meta dosyaları için her zaman bu stili kullanın.

Örnek

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

Yeni bir simge görüntüsünü statik denetimle ilişkilendirir.

HICON SetIcon(HICON hIcon);

Parametreler

hIcon
Statik denetimde çizilecek simgenin tutamacı.

Dönüş Değeri

Daha önce statik denetimle ilişkilendirilmiş simgenin tutamacı veya NULL statik denetimle ilişkilendirilmiş simge yoksa.

Açıklamalar

Simge statik denetimde otomatik olarak çizilir. Varsayılan olarak, sol üst köşeye çizilir ve statik denetim simgenin boyutuna göre yeniden boyutlandırılır.

Aşağıdakiler de dahil olmak üzere çeşitli pencere ve statik denetim stilleri kullanabilirsiniz:

  • SS_ICON İmleçler ve simgeler için her zaman bu stili kullanın.

  • SS_CENTERIMAGE Statik denetimi ortalamak için kullanın. Görüntü statik denetimden büyükse kırpılır. Statik denetimden küçükse, görüntünün etrafındaki boş alan statik denetimin arka plan rengiyle doldurulur.

Örnek

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

Ayrıca bkz.

CWnd Sınıf
Hiyerarşi Grafiği
CWnd Sınıf
CButton Sınıf
CComboBox Sınıf
CEdit Sınıf
CListBox Sınıf
CScrollBar Sınıf
CDialog Sınıf