Udostępnij za pośrednictwem


Klasa CDialogImpl

Ta klasa udostępnia metody tworzenia modalnego lub moderowego okna dialogowego.

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

template <class T,
    class TBase = CWindow>
    class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>

Parametry

T
Klasa pochodząca z CDialogImplklasy .

TBase
Klasa bazowa nowej klasy. Domyślna klasa bazowa to CWindow.

Członkowie

Metody

Function opis
Utworzenie Tworzy bez moderowe okno dialogowe.
Destroywindow Niszczy bez moderowe okno dialogowe.
Domodal Tworzy modalne okno dialogowe.
Enddialog Niszczy modalne okno dialogowe.

Metody CDialogImplBaseT

Function opis
GetDialogProc Zwraca bieżącą procedurę okna dialogowego.
MapDialogRect Mapy jednostki okna dialogowego określonego prostokąta do jednostek ekranu (pikseli).
OnFinalMessage Wywoływana po otrzymaniu ostatniego komunikatu zazwyczaj WM_NCDESTROY.

Funkcje statyczne

Function opis
Dialogproc Przetwarza komunikaty wysyłane do okna dialogowego.
StartDialogProc Wywoływana po odebraniu pierwszego komunikatu w celu przetworzenia komunikatów wysyłanych do okna dialogowego.

Uwagi

Za pomocą CDialogImpl polecenia można utworzyć modalne lub moderowe okno dialogowe. CDialogImpl Zawiera procedurę okna dialogowego, która używa domyślnej mapy komunikatów do kierowania komunikatów do odpowiednich procedur obsługi.

Destruktor ~CWindowImplRoot klasy bazowej gwarantuje, że okno znikną przed zniszczeniem obiektu.

CDialogImpl pochodzi z CDialogImplBaseTklasy , która z kolei pochodzi z klasy CWindowImplRoot.

Uwaga

Klasa musi zdefiniować element członkowski IDD określający identyfikator zasobu szablonu okna dialogowego. Na przykład Kreator projektu ATL automatycznie dodaje następujący wiersz do klasy:

enum { IDD = IDD_MYDLG };

gdzie MyDlg to krótka nazwa wprowadzona na stronie Nazwy kreatora.

Aby uzyskać więcej informacji o Zobacz
Tworzenie kontrolek Samouczek ATL
Używanie okien dialogowych w atl Klasy okien ATL
Kreator projektu ATL Tworzenie projektu ATL
Okna dialogowe Okna dialogowe i kolejne tematy w zestawie Windows SDK

Wymagania

Nagłówek: atlwin.h

CDialogImpl::Create

Tworzy bez moderowe okno dialogowe.

HWND Create(
    HWND hWndParent,
    LPARAM dwInitParam = NULL );

HWND Create(
    HWND hWndParent,
    RECT&,
    LPARAM dwInitParam = NULL);

Parametry

hWndParent
[in] Dojście do okna właściciela.

RECT&rect [in] Struktura RECT określająca rozmiar i położenie okna dialogowego.

dwInitParam
[in] Określa wartość, która ma być przekazywana do okna dialogowego w parametrze lParam komunikatu WM_INITDIALOG.

Wartość zwracana

Dojście do nowo utworzonego okna dialogowego.

Uwagi

To okno dialogowe jest automatycznie dołączane do CDialogImpl obiektu. Aby utworzyć modalne okno dialogowe, wywołaj metodę DoModal. Drugie zastąpienie powyżej jest używane tylko z CComControl.

CDialogImpl::D estroyWindow

Niszczy bez moderowe okno dialogowe.

BOOL DestroyWindow();

Wartość zwracana

WARTOŚĆ TRUE, jeśli okno dialogowe zostało pomyślnie zniszczone; w przeciwnym razie FAŁSZ.

Uwagi

Zwraca wartość TRUE, jeśli okno dialogowe zostało pomyślnie zniszczone; w przeciwnym razie FAŁSZ.

CDialogImpl::D ialogProc

Ta funkcja statyczna implementuje procedurę okna dialogowego.

static LRESULT CALLBACK DialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parametry

Hwnd
[in] Dojście do okna dialogowego.

uMsg
[in] Komunikat wysłany do okna dialogowego.

Wparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

Lparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

Wartość zwracana

WARTOŚĆ TRUE, jeśli komunikat jest przetwarzany; w przeciwnym razie, FAŁSZ.

Uwagi

DialogProc używa domyślnej mapy komunikatów w celu kierowania komunikatów do odpowiednich procedur obsługi.

Można zastąpić DialogProc , aby zapewnić inny mechanizm obsługi komunikatów.

CDialogImpl::D oModal

Tworzy modalne okno dialogowe.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

Parametry

hWndParent
[in] Dojście do okna właściciela. Wartość domyślna to wartość zwracana przez funkcję GetActiveWindow Win32.

dwInitParam
[in] Określa wartość, która ma być przekazywana do okna dialogowego w parametrze lParam komunikatu WM_INITDIALOG.

Wartość zwracana

W przypadku powodzenia wartość parametru nRetCode określonego w wywołaniu metody EndDialog. W przeciwnym razie - 1.

Uwagi

To okno dialogowe jest automatycznie dołączane do CDialogImpl obiektu.

Aby utworzyć okno dialogowe bez moderowania, wywołaj metodę Utwórz.

CDialogImpl::EndDialog

Niszczy modalne okno dialogowe.

BOOL EndDialog(int nRetCode);

Parametry

nRetCode
[in] Wartość, która ma zostać zwrócona przez CDialogImpl::D oModal.

Wartość zwracana

WARTOŚĆ TRUE, jeśli okno dialogowe zostanie zniszczone; w przeciwnym razie, FAŁSZ.

Uwagi

EndDialog należy wywołać za pomocą procedury okna dialogowego. Po zniszczeniu okna dialogowego system Windows używa wartości nRetCode jako wartości zwracanej dla DoModalelementu , która utworzyła okno dialogowe.

Uwaga

Nie należy wywoływać EndDialog , aby zniszczyć okno dialogowe bez moderowania. Wywołaj metodę CWindow::D estroyWindow .

CDialogImpl::GetDialogProc

Zwraca DialogProcprocedurę bieżącego okna dialogowego .

virtual WNDPROC GetDialogProc();

Wartość zwracana

Bieżąca procedura okna dialogowego.

Uwagi

Zastąp tę metodę, aby zastąpić procedurę okna dialogowego własną.

CDialogImpl::MapDialogRect

Konwertuje (mapy) jednostki okna dialogowego określonego prostokąta na jednostki ekranu (piksele).

BOOL MapDialogRect(LPRECT lpRect);

Parametry

Lprect
CRect Wskazuje obiekt lub strukturę RECT, która ma odbierać współrzędne klienta aktualizacji, która otacza region aktualizacji.

Wartość zwracana

Nonzero, jeśli aktualizacja powiedzie się; 0, jeśli aktualizacja zakończy się niepowodzeniem. Aby uzyskać rozszerzone informacje o błędzie, wywołaj metodę GetLastError.

Uwagi

Funkcja zastępuje współrzędne w określonej RECT strukturze przekonwertowanymi współrzędnymi, co umożliwia użycie struktury do utworzenia okna dialogowego lub położenia kontrolki w oknie dialogowym.

CDialogImpl::OnFinalMessage

Wywołana po otrzymaniu ostatniej wiadomości (zazwyczaj WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Parametry

Hwnd
[in] Uchwyt do okna, który jest niszczony.

Uwagi

Należy pamiętać, że jeśli chcesz automatycznie usunąć obiekt po usunięciu okna, możesz wywołać to . Tutaj.

CDialogImpl::StartDialogProc

Wywoływane tylko raz, gdy zostanie odebrany pierwszy komunikat, w celu przetworzenia komunikatów wysyłanych do okna dialogowego.

static LRESULT CALLBACK StartDialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parametry

Hwnd
[in] Dojście do okna dialogowego.

uMsg
[in] Komunikat wysłany do okna dialogowego.

Wparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

Lparam
[in] Dodatkowe informacje specyficzne dla komunikatów.

Wartość zwracana

Procedura okna.

Uwagi

Po początkowym wywołaniu metody StartDialogProcDialogProc jest ustawiona jako procedura okna dialogowego, a dalsze wywołania są dostępne.

Zobacz też

BEGIN_MSG_MAP
Omówienie klasy