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 CDialogImpl
klasy .
TBase
Klasa bazowa nowej klasy. Domyślna klasa bazowa to CWindow.
Elementy członkowskie
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 | Mapuje jednostki okna dialogowego określonego prostokąta na jednostki ekranu (piksele). |
OnFinalMessage | Wywoływana po otrzymaniu ostatniego komunikatu zazwyczaj WM_NCDESTROY. |
Funkcje statyczne
Function | opis |
---|---|
Okno dialogoweProc | 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 CDialogImplBaseT
klasy , 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 DoModal
elementu , 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 DialogProc
procedurę 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 StartDialogProc
DialogProc
jest ustawiona jako procedura okna dialogowego, a dalsze wywołania są dostępne.