Okno dialogowe wykonawczych
Istnieją dwa sposoby dodawania do projektu ATL okno dialogowe: Użyj Kreatora okno dialogowe ATL lub ręcznie dodać.
Okno dialogowe, za pomocą Kreatora ATL okno dialogowe Dodawanie
W okno dialogowe Dodawanie klasy, zaznacz obiekt ATL okno dialogowe, dodawanie do projektu ATL okno dialogowe.Wypełnij w Kreatorze okno dialogowe ATL i kliknij przycisk Zakończ.Kreator dodaje klasę pochodną CAxDialogImpl do projektu.Otwórz widok zasobów z widoku menu użytkownika okno dialogowe Znajdź i kliknij dwukrotnie, aby go otworzyć w edytorze zasobów.
[!UWAGA]
Jeśli Twoje okno dialogowe jest pochodną CAxDialogImpl, on obsługiwać zarówno ActiveX i formantów systemu Windows.Jeśli nie chcesz napowietrznej obsługi formantów ActiveX w klasie okno dialogowe, użyj CSimpleDialog lub CDialogImpl zamiast.
Programy obsługi wiadomości i zdarzeń można dodać do swojej klasy okno dialogowe z widoku klasy.Aby uzyskać więcej informacji, zobacz Dodawanie obsługi wiadomości ATL.
Ręczne dodawanie okno dialogowe
Okno dialogowe wykonawczych jest podobne do wykonawczych okna.Pochodzić klasy od albo CAxDialogImpl, CDialogImpl, lub CSimpleDialog i zadeklarować mapy komunikat do obsługi wiadomości.Jednakże należy także określić identyfikator zasobu szablonu okno dialogowe w klasie pochodnej.Klasa musi mieć element danych o nazwie IDD do przechowywania tej wartości.
[!UWAGA]
Tworząc okno dialogowe, za pomocą Kreatora okno dialogowe ATL, Kreator automatycznie doda IDD Członkowskich jako enum typu.
CDialogImplUmożliwia wdrożenie modalny lub niemodalny dialogowym obsługującego formanty systemu Windows.CAxDialogImplUmożliwia wdrożenie modalny lub niemodalny okno dialogowe, które obsługuje formanty ActiveX i systemu Windows.
Utworzyć modalne okno dialogowe, należy utworzyć wystąpienie programu CDialogImpl-uzyskane (lub CAxDialogImpl-uzyskane) klasy, a następnie wywołać DoModal metody.Aby zamknąć okno modalne okno dialogowe, należy zadzwonić EndDialog metody obsługi wiadomości.Aby utworzyć niemodalne okno dialogowe, wywołaj Tworzenie metody zamiast DoModal.Aby zniszczyć niemodalne okno dialogowe, wywołaj DestroyWindow.
Zatopieniu zdarzenia jest wykonywane automatycznie CAxDialogImpl.Wdrożenie obsługi wiadomości w oknie dialogowym, jak w przypadku obsługi w CWindowImpl-klasy.Jeśli wartość zwrotu wiadomości zwrócić go jako LRESULT.Zwrócony LRESULT wartości są mapowane przez ATL właściwego obsługi przez Menedżera okno dialogowe systemu Windows.Szczegółowe informacje można znaleźć kod źródłowy CDialogImplBaseT::DialogProc w atlwin.h.
Przykład
Następujące klasy implementuje okno dialogowe:
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*/);
};