CStatic
Kelas
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_CHILD
SelaluWS_VISIBLE
BiasanyaWS_DISABLED
Jarang
Jika Anda akan menampilkan bitmap, kursor, ikon, atau metafile dalam kontrol statis, Anda harus menerapkan salah satu gaya statis berikut:
SS_BITMAP
Gunakan gaya ini untuk bitmap.SS_ICON
Gunakan gaya ini untuk kursor dan ikon.SS_ENHMETAFILE
Gunakan gaya ini untuk metafiles yang ditingkatkan.
Untuk kursor, bitmap, atau ikon, Anda mungkin juga ingin menggunakan gaya berikut:
SS_CENTERIMAGE
Gunakan 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_BITMAP
Gunakan gaya ini selalu untuk bitmap.SS_CENTERIMAGE
Gunakan 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 fungsiLoadBitmap
Win32 .CBitmap
, yang berisi satu jenis objek GDI, sering digunakan dalam kerja sama denganCStatic
, yang merupakanCWnd
kelas 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::SetBitmap
objek GDI yang dikembalikan oleh operator HBITMAP dari objekCBitmap
atauCImage
. 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_ICON
Gunakan gaya ini selalu untuk kursor dan ikon.SS_CENTERIMAGE
Gunakan 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_ENHMETAFILE
Gunakan 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_ICON
Gunakan gaya ini selalu untuk kursor dan ikon.SS_CENTERIMAGE
Gunakan 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