Standart Bir Denetimden Denetim Türetme
Herhangi bir CWnd türetilmiş sınıfında olduğu gibi, mevcut bir denetim sınıfından yeni bir sınıf türeterek denetimin davranışını değiştirebilirsiniz.
Türetilmiş denetim sınıfı oluşturmak için
Sınıfınızı mevcut bir denetim sınıfından türetin ve isteğe bağlı olarak üye işlevini geçersiz kılarak
Create
temel sınıfCreate
işlevine gerekli bağımsız değişkenleri sağlamasını sağlayın.Denetimin davranışını belirli Windows iletilerine yanıt olarak değiştirmek için ileti işleyicisi üye işlevleri ve ileti eşleme girdileri sağlayın. Bkz. İletileri İşlevlere Eşleme.
Denetimin işlevselliğini genişletmek için yeni üye işlevleri sağlayın (isteğe bağlı).
bir iletişim kutusunda türetilmiş denetim kullanmak fazladan çalışma gerektirir. İletişim kutusundaki denetimlerin türleri ve konumları normalde bir iletişim kutusu şablonu kaynağında belirtilir. Türetilmiş bir denetim sınıfı oluşturursanız, kaynak derleyicisi türetilmiş sınıfınız hakkında hiçbir şey bilmediğinden bunu bir iletişim kutusu şablonunda belirtemezsiniz.
Türetilmiş denetiminizi bir iletişim kutusuna yerleştirmek için
Türetilmiş denetim sınıfının nesnesini türetilmiş iletişim sınıfınızın bildirimine ekleyin.
OnInitDialog
Türetilmiş denetim için üye işlevini çağırmak için iletişim kutunuzdakiSubclassDlgItem
üye işlevini geçersiz kılın.
SubclassDlgItem
İletişim kutusu şablonundan oluşturulan denetimi "dinamik olarak alt sınıflar". Bir denetim dinamik olarak alt sınıflandığında, Windows'a bağlanıp kendi uygulamanızda bazı iletileri işler ve kalan iletileri Windows'a geçirirsiniz. Daha fazla bilgi için MFC Başvurusu'ndaki sınıfın CWnd
SubclassDlgItem üye işlevine bakın. Aşağıdaki örnekte çağrısı SubclassDlgItem
yapmak için geçersiz kılmayı nasıl yazabileceğiniz gösterilmektedirOnInitDialog
:
BOOL CSubDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);
return TRUE;
}
Türetilmiş denetim iletişim kutusu sınıfına eklendiğinden, iletişim kutusu oluşturulduğunda oluşturulur ve iletişim kutusu yok edildiğinde yok edilir. Bu kodu El ile Denetim Ekleme'deki örnekle karşılaştırın.