Sdílet prostřednictvím


Odvozování ovládacích prvků ze standardního ovládacího prvku

Stejně jako u jakékoli CWnd-odvozené třídy, nové třídy odvozené z existující třídy ovládacího prvku můžete upravit chování ovládacího prvku.

Chcete-li vytvořit ovládací prvek odvozené třídy

  1. Odvození třídy z existující třídy ovládacího prvku a volitelně potlačit vytvořit členské funkce tak, že poskytuje potřebné argumenty pro základní třídy vytvořit funkce.

  2. Poskytuje členské funkce zpracování zpráv a mapu zpráv položky upravit chování ovládacího prvku v odezvě na určité zprávy systému Windows.Naleznete v tématu Mapování zpráv do funkcí.

  3. Poskytují nové členské funkce rozšířit funkce ovládacího prvku (volitelné).

Pomocí odvozených ovládacího prvku v dialogovém okně vyžaduje další práci.V dialogovém okně šablony prostředků obvykle uvede typy a umístění ovládacích prvků v dialogovém okně.Pokud vytvoříte ovládací prvek odvozené třídy, nelze zadat v dialogovém okně Šablony protože kompilátor prostředků ví, nic o vaší odvozené třídy.

V dialogovém okně umístit ovládací prvek odvozený

  1. V deklaraci vaší třídy odvozené dialogové okno vložte objekt třídy odvozené ovládacího prvku.

  2. Přepsat OnInitDialog členské funkce ve vaší třídě dialogové okno pro volání SubclassDlgItem členské funkce pro ovládací prvek odvozený.

SubclassDlgItem"dynamicky podtřídy" ovládací prvek vytvořen z dialogového okna šablony.Pokud ovládací prvek je dynamicky rozčlenění, zapojení do systému Windows, zpracování některých zpráv v rámci vlastní aplikace pak předá zbývající zprávy systému Windows.Další informace naleznete SubclassDlgItem členské funkce třídy CWnd v Odkaz knihovny MFC.Následující příklad ukazuje, jak můžete napsat přepsání OnInitDialog volat SubclassDlgItem:

BOOL CSubDialog::OnInitDialog()
{
   CDialog::OnInitDialog();

   m_wndMyBtn.SubclassDlgItem(IDC_MYBTN, this);

   return TRUE;
}

Protože třída dialogového okna je vložen ovládací prvek odvozený, bude vytvořen při dialogové okno je vytvořen a budou zničena, pokud dialogové okno je zničen.Porovnejte tento kód v příkladu v Přidání ovládacích prvků za ruku.

Viz také

Referenční dokumentace

Příprava a použití ovládacích prvků

Koncepty

Ovládací prvky (MFC)