Bagikan melalui


Menambahkan Kontrol Dengan Tangan

Anda dapat menambahkan kontrol ke kotak dialog dengan editor dialog atau menambahkannya sendiri, dengan kode.

Untuk membuat objek kontrol sendiri, Anda biasanya akan menyematkan objek kontrol C++ dalam dialog C++ atau objek jendela bingkai. Seperti banyak objek lain dalam kerangka kerja, kontrol memerlukan konstruksi dua tahap. Anda harus memanggil fungsi Buat anggota kontrol sebagai bagian dari pembuatan kotak dialog induk atau jendela bingkai. Untuk kotak dialog, ini biasanya dilakukan di OnInitDialog, dan untuk jendela bingkai, di OnCreate.

Contoh berikut menunjukkan bagaimana Anda mungkin mendeklarasikan CEdit objek dalam deklarasi kelas kelas dialog turunan lalu memanggil Create fungsi anggota di OnInitDialog. CEdit Karena objek dinyatakan sebagai objek yang disematkan, objek tersebut secara otomatis dibangun ketika objek dialog dibangun, tetapi masih harus diinisialisasi dengan fungsi anggotanya sendiriCreate.

class CCustomDialog : public CDialog
{
   CEdit m_edit;
   virtual BOOL OnInitDialog();
};

Fungsi berikut OnInitDialog menyiapkan persegi panjang, lalu memanggil Create untuk membuat kontrol edit Windows dan melampirkannya ke objek yang tidak diinisialisasi CEdit .

BOOL CCustomDialog::OnInitDialog()
{
   CDialog::OnInitDialog();
   CRect rect(85, 110, 180, 210);

   m_edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP |
                     ES_AUTOHSCROLL | WS_BORDER,
                 rect, this, IDC_EXTRA_EDIT);
   m_edit.SetFocus();
   return FALSE;
}

Setelah membuat objek edit, Anda juga dapat mengatur fokus input ke kontrol dengan memanggil SetFocus fungsi anggota. Terakhir, Anda mengembalikan 0 dari OnInitDialog untuk menunjukkan bahwa Anda mengatur fokus. Jika Anda mengembalikan nilai bukan nol, manajer dialog mengatur fokus ke item kontrol pertama dalam daftar item dialog. Dalam kebanyakan kasus, Anda mungkin ingin menambahkan kontrol ke kotak dialog Anda dengan editor dialog.

Baca juga

Membuat dan Menggunakan Kontrol
Kontrol
CDialog::OnInitDialog