Provádění dialogové okno
Dialogové okno Přidat do projektu ATL dvěma způsoby: použijte dialogové okno Průvodce ATL nebo přidat ručně.
Přidání dialogové okno Průvodce ATL
V dialogové okno Přidat třídu, vyberte objekt ATL dialogové okno Přidat do projektu ATL dialogové okno.Vyplňte dialogové okno Průvodce ATL podle potřeby a na Dokončit.Průvodce přidá třídy odvozené od CAxDialogImpl do projektu.Otevřít zobrazení zdrojů z zobrazení nabídce v dialogovém okně Najít a poklepáním ho otevřete v editoru zdrojů.
[!POZNÁMKA]
Pokud v dialogovém okně je odvozen od CAxDialogImpl , může být hostitelem i ActiveX a ovládací prvky systému Windows.Pokud nechcete režijní náklady na podporu ovládacích prvků ActiveX v dialogovém okně pole Třída, CSimpleDialog nebo CDialogImpl místo.
Zprávy a události mohou být přidány do třídy dialogové okno zobrazení třídy.Více informací naleznete v tématu Přidání popisovače zpráv knihovny ATL.
Ruční přidání dialogové okno
Provádění dialogové okno je podobný provádění okna.Odvození třídy z buď CAxDialogImpl, CDialogImpl, nebo CSimpleDialog a deklarovat zpráva mapa se zprávami.Číslo ID dialogové okno šablony zdroje však musíte také zadat v odvozené třídě.Třída musí mít nazývá datový člen IDD držet tuto hodnotu.
[!POZNÁMKA]
Při vytváření dialogové okno Průvodce ATL Průvodce automaticky přidá IDD jako člen enum typu.
CDialogImplumožňuje implementovat modalem nebo nemodální dialogového okna obsahujícího ovládací prvky systému Windows.CAxDialogImplumožňuje implementovat modalem nebo nemodální dialogového okna obsahujícího ovládací prvky ActiveX a systému Windows.
Vytvořit modální dialogové okno, vytvořte instanci vaše CDialogImpl -odvozené (nebo CAxDialogImpl -odvozené) třída a zavolejte DoModal metoda.Modální dialogové okno zavřít, zavolejte EndDialog metoda z procesu zpracování zpráv.Nemodální dialogové okno vytvořit, zavolejte vytvořit metody namísto DoModal .Nemodální okno zničit, volání DestroyWindow.
Šachet události automaticky provádí v CAxDialogImpl.Stejně jako obslužné rutiny v implementovat rutiny dialogové okno zpráva CWindowImpl -odvozené třídy.Pokud je vrácená hodnota konkrétní zprávy, vrátí ji jako LRESULT .Vrácené LRESULT hodnoty mapovány ATL řádné zpracování pomocí dialogového okna Správce systému Windows.Podrobnosti naleznete v tématu zdrojový kód pro CDialogImplBaseT::DialogProc v atlwin.h.
Příklad
Následující třída implementuje dialogové okno:
class CMyDialog : public CDialogImpl<CMyDialog>
{
public:
enum { IDD = IDD_MYDLG };
BEGIN_MSG_MAP(CMyDialog)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_HANDLER(IDCANCEL, BN_CLICKED, OnBnClickedCancel)
END_MSG_MAP()
LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
// Do some initialization code
return 1;
}
public:
LRESULT OnBnClickedCancel(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/);
};