Aracılığıyla paylaş


El İle Denetim Ekleme

İletişim kutusu düzenleyicisiyle bir iletişim kutusuna denetimler ekleyebilir veya bunları kendiniz kodla ekleyebilirsiniz.

Bir denetim nesnesini kendiniz oluşturmak için genellikle C++ denetim nesnesini bir C++ iletişim kutusuna veya çerçeve penceresi nesnesine eklersiniz. Çerçevedeki diğer birçok nesne gibi, denetimler de iki aşamalı yapı gerektirir. Üst iletişim kutusunu veya çerçeve penceresini oluşturmanın bir parçası olarak denetimin Üye oluştur işlevini çağırmanız gerekir. İletişim kutuları için, bu genellikle OnInitDialog'da ve çerçeve pencereleri için OnCreate içinde yapılır.

Aşağıdaki örnek, türetilmiş bir iletişim kutusunun sınıf bildiriminde bir CEdit nesneyi nasıl bildirip içinde üye işlevini OnInitDialogçağırabileceğinizi Create gösterir. Nesne katıştırılmış nesne olarak bildirildiğinden CEdit , iletişim kutusu nesnesi oluşturulduğunda otomatik olarak oluşturulur, ancak yine de kendi Create üye işleviyle başlatılması gerekir.

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

Aşağıdaki OnInitDialog işlev bir dikdörtgen ayarlar, ardından Windows düzenleme denetimini oluşturmak ve başlatılmamış CEdit nesneye eklemek için çağırırCreate.

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;
}

Düzenleme nesnesini oluşturduktan sonra, üye işlevini çağırarak giriş odağını denetime SetFocus de ayarlayabilirsiniz. Son olarak, odağı ayarladığınızı göstermek için 0 OnInitDialog değerini döndürürsiniz. Sıfır olmayan bir değer döndürürseniz, iletişim kutusu yöneticisi odağı iletişim kutusu öğesi listesindeki ilk denetim öğesine ayarlar. Çoğu durumda, iletişim kutusu düzenleyicisiyle iletişim kutularınıza denetimler eklemek istersiniz.

Ayrıca bkz.

Denetimleri Yapma ve Kullanma
Denetimler
CDialog::OnInitDialog