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 SetBitmap ayarlanan bit eşlem tutamacını alır. |
CStatic::GetCursor |
önceden ile SetCursor ayarlanan imleç görüntüsünün tutamacını alır. |
CStatic::GetEnhMetaFile |
Daha önce ile SetEnhMetaFile ayarlanan gelişmiş meta dosyasının tutamacını alır. |
CStatic::GetIcon |
Önceden ile SetIcon ayarlanan 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
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 CStatic
ve ardından Windows statik denetimini oluşturan ve nesnesine ekleyen öğesini çağırınCreate
CStatic
.
Statik denetime aşağıdaki pencere stillerini uygulayın:
WS_CHILD
Her zamanWS_VISIBLE
GeneldeWS_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_OWNERDRAW
vardır).
CStatic::GetBitmap
ile ilişkilendirilmiş CStatic
olan bit eşleminin daha önce ile SetBitmap
ayarlanan 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 SetCursor
CStatic
iliş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 SetEnhMetafile
ayarlanmış 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 SetIcon
ayarlanmış ve ile CStatic
iliş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ıCBitmap
sağlar.CBitmap
, bir tür GDI nesnesi içeren, genellikle bir grafik nesnesini statik denetim olarak görüntülemek için kullanılan birCWnd
sınıf olan ileCStatic
iş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 birCBitmap
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::Load
bir 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