Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menyediakan fungsionalitas kontrol statis Windows.
Sintaks
class CStatic : public CWnd
Anggota
Konstruktor Publik
| Nama | Deskripsi |
|---|---|
CStatic::CStatic |
Membuat CStatic objek. |
Metode Publik
| Nama | Deskripsi |
|---|---|
CStatic::Create |
Membuat kontrol statis Windows dan melampirkannya ke CStatic objek. |
CStatic::DrawItem |
Ambil alih untuk menggambar kontrol statis yang digambar pemilik. |
CStatic::GetBitmap |
Mengambil handel bitmap yang sebelumnya diatur dengan SetBitmap. |
CStatic::GetCursor |
Mengambil handel gambar kursor yang sebelumnya diatur dengan SetCursor. |
CStatic::GetEnhMetaFile |
Mengambil handel metafile yang ditingkatkan yang sebelumnya diatur dengan SetEnhMetaFile. |
CStatic::GetIcon |
Mengambil handel ikon yang sebelumnya diatur dengan SetIcon. |
CStatic::SetBitmap |
Menentukan bitmap yang akan ditampilkan dalam kontrol statis. |
CStatic::SetCursor |
Menentukan gambar kursor yang akan ditampilkan dalam kontrol statis. |
CStatic::SetEnhMetaFile |
Menentukan metafile yang ditingkatkan untuk ditampilkan dalam kontrol statis. |
CStatic::SetIcon |
Menentukan ikon yang akan ditampilkan dalam kontrol statis. |
Keterangan
Kontrol statis menampilkan string teks, kotak, persegi panjang, ikon, kursor, bitmap, atau metafile yang ditingkatkan. Ini dapat digunakan untuk memberi label, kotak, atau memisahkan kontrol lainnya. Kontrol statis biasanya tidak mengambil input dan tidak memberikan output; namun, ini dapat memberi tahu induk klik mousenya jika dibuat dengan SS_NOTIFY gaya.
Buat kontrol statis dalam dua langkah. Pertama, panggil konstruktor untuk membuat CStatic objek, lalu panggil Create fungsi anggota untuk membuat kontrol statis dan melampirkannya ke CStatic objek.
Jika Anda membuat CStatic objek dalam kotak dialog (melalui sumber daya dialog), CStatic objek secara otomatis dihancurkan saat pengguna menutup kotak dialog.
Jika Anda membuat CStatic objek di dalam jendela, Anda mungkin juga perlu menghancurkannya. Objek CStatic yang dibuat pada tumpukan dalam jendela secara otomatis dihancurkan. Jika Anda membuat CStatic objek pada tumpukan dengan menggunakan new fungsi , Anda harus memanggil delete objek untuk menghancurkannya ketika Anda selesai dengannya.
Hierarki Warisan
CStatic
Persyaratan
Header: afxwin.h
CStatic::Create
Membuat kontrol statis Windows dan melampirkannya ke CStatic objek.
virtual BOOL Create(
LPCTSTR lpszText,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID = 0xffff);
Parameter
lpszText
Menentukan teks yang akan ditempatkan dalam kontrol. Jika NULL, tidak ada teks yang akan terlihat.
dwStyle
Menentukan gaya jendela kontrol statis. Terapkan kombinasi gaya kontrol statis apa pun ke kontrol.
rect
Menentukan posisi dan ukuran kontrol statis. Ini bisa berupa RECT struktur atau CRect objek.
pParentWnd
Menentukan jendela CStatic induk, biasanya objek CDialog . Ini tidak boleh NULL.
nID
Menentukan ID kontrol kontrol statis.
Tampilkan Nilai
Bukan nol jika berhasil; jika tidak, 0.
Keterangan
Buat CStatic objek dalam dua langkah. Pertama, panggil konstruktor CStatic, lalu panggil Create, yang membuat kontrol statis Windows dan melampirkannya ke CStatic objek.
Terapkan gaya jendela berikut ke kontrol statis:
WS_CHILDSelaluWS_VISIBLEBiasanyaWS_DISABLEDJarang
Jika Anda akan menampilkan bitmap, kursor, ikon, atau metafile dalam kontrol statis, Anda harus menerapkan salah satu gaya statis berikut:
SS_BITMAPGunakan gaya ini untuk bitmap.SS_ICONGunakan gaya ini untuk kursor dan ikon.SS_ENHMETAFILEGunakan gaya ini untuk metafiles yang ditingkatkan.
Untuk kursor, bitmap, atau ikon, Anda mungkin juga ingin menggunakan gaya berikut:
SS_CENTERIMAGEGunakan untuk memerah gambar dalam kontrol statis.
Contoh
// 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
Membuat CStatic objek.
CStatic();
Contoh
// Create a static object on the stack.
CStatic myStatic;
// Create a static object on the heap.
CStatic *pmyStatic = new CStatic;
CStatic::DrawItem
Dipanggil oleh kerangka kerja untuk menggambar kontrol statis yang digambar pemilik.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parameter
lpDrawItemStruct
Penunjuk ke DRAWITEMSTRUCT struktur. Struktur berisi informasi tentang item yang akan digambar dan jenis gambar yang diperlukan.
Keterangan
Ambil alih fungsi ini untuk mengimplementasikan gambar untuk objek yang digambar CStatic pemilik (kontrol memiliki gaya SS_OWNERDRAW).
CStatic::GetBitmap
Mendapatkan handel bitmap, yang sebelumnya diatur dengan SetBitmap, yang terkait dengan CStatic.
HBITMAP GetBitmap() const;
Tampilkan Nilai
Handel ke bitmap saat ini, atau NULL jika tidak ada bitmap yang telah diatur.
Contoh
// 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
Mendapatkan handel kursor, yang sebelumnya diatur dengan SetCursor, yang terkait dengan CStatic.
HCURSOR GetCursor();
Tampilkan Nilai
Handel ke kursor saat ini, atau NULL jika tidak ada kursor yang telah diatur.
Contoh
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
Mendapatkan handel metafile yang ditingkatkan, yang sebelumnya diatur dengan SetEnhMetafile, yang terkait dengan CStatic.
HENHMETAFILE GetEnhMetaFile() const;
Tampilkan Nilai
Handel ke metafile yang ditingkatkan saat ini, atau NULL jika tidak ada metafile yang ditingkatkan yang telah diatur.
Contoh
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
Mendapatkan handel ikon, yang sebelumnya diatur dengan SetIcon, yang terkait dengan CStatic.
HICON GetIcon() const;
Tampilkan Nilai
Handel ke ikon saat ini, atau NULL jika tidak ada ikon yang disetel.
Contoh
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
Mengaitkan bitmap baru dengan kontrol statis.
HBITMAP SetBitmap(HBITMAP hBitmap);
Parameter
hBitmap
Handel bitmap yang akan digambar dalam kontrol statis.
Tampilkan Nilai
Handel bitmap yang sebelumnya dikaitkan dengan kontrol statis, atau NULL jika tidak ada bitmap yang terkait dengan kontrol statis.
Keterangan
Bitmap akan secara otomatis digambar dalam kontrol statis. Secara default, ini akan digambar di sudut kiri atas dan kontrol statis akan diubah ukurannya menjadi ukuran bitmap.
Anda dapat menggunakan berbagai gaya jendela dan kontrol statis, termasuk ini:
SS_BITMAPGunakan gaya ini selalu untuk bitmap.SS_CENTERIMAGEGunakan untuk memerah gambar dalam kontrol statis. Jika gambar lebih besar dari kontrol statis, gambar akan dipotong. Jika lebih kecil dari kontrol statis, ruang kosong di sekitar gambar akan diisi oleh warna piksel di sudut kiri atas bitmap.MFC menyediakan kelas
CBitmap, yang dapat Anda gunakan ketika Anda harus melakukan lebih banyak hal dengan gambar bitmap daripada hanya memanggil fungsiLoadBitmapWin32 .CBitmap, yang berisi satu jenis objek GDI, sering digunakan dalam kerja sama denganCStatic, yang merupakanCWndkelas yang digunakan untuk menampilkan objek grafis sebagai kontrol statis.
CImage adalah kelas ATL/MFC yang memungkinkan Anda lebih mudah bekerja dengan bitmap independen perangkat (DIB). Untuk informasi selengkapnya, lihat CImage Kelas.
- Penggunaan umumnya adalah memberikan
CStatic::SetBitmapobjek GDI yang dikembalikan oleh operator HBITMAP dari objekCBitmapatauCImage. Kode untuk melakukan ini menyerupan baris berikut.
MyStaticControl.SetBitmap(HBITMAP(MyBitmap));
Contoh berikut membuat dua CStatic objek pada timbunan. Kemudian memuat satu dengan bitmap sistem menggunakan CBitmap::LoadOEMBitmap dan yang lain dari file menggunakan CImage::Load.
Contoh
// 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
Mengaitkan gambar kursor baru dengan kontrol statis.
HCURSOR SetCursor(HCURSOR hCursor);
Parameter
hCursor
Handel kursor yang akan digambar dalam kontrol statis.
Tampilkan Nilai
Handel kursor yang sebelumnya terkait dengan kontrol statis, atau NULL jika tidak ada kursor yang terkait dengan kontrol statis.
Keterangan
Kursor akan digambar secara otomatis dalam kontrol statis. Secara default, ini akan digambar di sudut kiri atas dan kontrol statis akan diubah ukurannya menjadi ukuran kursor.
Anda dapat menggunakan berbagai jendela dan gaya kontrol statis, termasuk yang berikut ini:
SS_ICONGunakan gaya ini selalu untuk kursor dan ikon.SS_CENTERIMAGEGunakan untuk berpusat di kontrol statis. Jika gambar lebih besar dari kontrol statis, gambar akan dipotong. Jika lebih kecil dari kontrol statis, ruang kosong di sekitar gambar akan diisi dengan warna latar belakang kontrol statis.
Contoh
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
Mengaitkan gambar metafile baru yang ditingkatkan dengan kontrol statis.
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);
Parameter
hMetaFile
Handel metafile yang ditingkatkan untuk digambar dalam kontrol statis.
Tampilkan Nilai
Handel metafile yang ditingkatkan sebelumnya terkait dengan kontrol statis, atau NULL jika tidak ada metafile yang ditingkatkan yang dikaitkan dengan kontrol statis.
Keterangan
Metafile yang ditingkatkan akan secara otomatis digambar dalam kontrol statis. Metafile yang ditingkatkan diskalakan agar sesuai dengan ukuran kontrol statis.
Anda dapat menggunakan berbagai jendela dan gaya kontrol statis, termasuk yang berikut ini:
SS_ENHMETAFILEGunakan gaya ini selalu untuk metafiles yang ditingkatkan.
Contoh
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
Mengaitkan gambar ikon baru dengan kontrol statis.
HICON SetIcon(HICON hIcon);
Parameter
hIcon
Gagang ikon yang akan digambar dalam kontrol statis.
Tampilkan Nilai
Handel ikon yang sebelumnya terkait dengan kontrol statis, atau NULL jika tidak ada ikon yang terkait dengan kontrol statis.
Keterangan
Ikon akan secara otomatis digambar dalam kontrol statis. Secara default, ini akan digambar di sudut kiri atas dan kontrol statis akan diubah ukurannya menjadi ukuran ikon.
Anda dapat menggunakan berbagai jendela dan gaya kontrol statis, termasuk yang berikut ini:
SS_ICONGunakan gaya ini selalu untuk kursor dan ikon.SS_CENTERIMAGEGunakan untuk berpusat di kontrol statis. Jika gambar lebih besar dari kontrol statis, gambar akan dipotong. Jika lebih kecil dari kontrol statis, ruang kosong di sekitar gambar akan diisi dengan warna latar belakang kontrol statis.
Contoh
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));
Lihat juga
CWnd Kelas
Bagan Hierarki
CWnd Kelas
CButton Kelas
CComboBox Kelas
CEdit Kelas
CListBox Kelas
CScrollBar Kelas
CDialog Kelas