Bagikan melalui


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

CObject

CCmdTarget

CWnd

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 Selalu

  • WS_VISIBLE Biasanya

  • WS_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 fungsi LoadBitmapWin32 . CBitmap, yang berisi satu jenis objek GDI, sering digunakan dalam kerja sama dengan CStatic, yang merupakan CWnd 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 objek CBitmap atau CImage . 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