CDialogImpl – třída
Tato třída poskytuje metody pro vytvoření modálního nebo bezmodálního dialogového okna.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntaxe
template <class T,
class TBase = CWindow>
class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>
Parametry
T
Vaše třída odvozená z CDialogImpl
.
TBase
Základní třída nové třídy. Výchozí základní třída je CWindow.
Členové
Metody
Function | Popis |
---|---|
Vytvořit | Vytvoří bezmodální dialogové okno. |
DestroyWindow | Zničí bezmodální dialogové okno. |
DoModal | Vytvoří modální dialogové okno. |
EndDialog | Zničí modální dialogové okno. |
CDialogImplBaseT – metody
Function | Popis |
---|---|
GetDialogProc | Vrátí aktuální proceduru dialogového okna. |
MapDialogRect | Mapuje jednotky dialogového okna zadaného obdélníku na jednotky obrazovky (pixely). |
OnFinalMessage | Volá se po přijetí poslední zprávy, obvykle WM_NCDESTROY. |
Statické funkce
Function | Popis |
---|---|
DialogProc | Zpracovává zprávy odeslané do dialogového okna. |
StartDialogProc | Volá se při přijetí první zprávy pro zpracování zpráv odeslaných do dialogového okna. |
Poznámky
Můžete CDialogImpl
vytvořit modální nebo bezmodální dialogové okno. CDialogImpl
poskytuje proceduru dialogového okna, která používá výchozí mapování zpráv pro směrování zpráv na příslušné obslužné rutiny.
Destruktor ~CWindowImplRoot
základní třídy zajišťuje, že okno je pryč před zničením objektu.
CDialogImpl
odvozuje od CDialogImplBaseT
, který je odvozen od CWindowImplRoot
.
Poznámka:
Třída musí definovat člena IDD
, který určuje ID prostředku šablony dialogového okna. Průvodce projektem ATL například automaticky přidá do třídy následující řádek:
enum { IDD = IDD_MYDLG };
kde MyDlg
je krátký název zadaný na stránce Názvy průvodce.
Další informace na téma | Seznamte se s |
---|---|
Vytváření ovládacích prvků | Kurz ATL |
Použití dialogových oken v ATL | ATL – třídy oken |
Průvodce projektem ATL | Vytvoření projektu ATL |
Dialogová okna | Dialogová okna a další témata v sadě Windows SDK |
Požadavky
Hlavička: atlwin.h
CDialogImpl::Create
Vytvoří bezmodální dialogové okno.
HWND Create(
HWND hWndParent,
LPARAM dwInitParam = NULL );
HWND Create(
HWND hWndParent,
RECT&,
LPARAM dwInitParam = NULL);
Parametry
hWndParent
[v] Popisovač okna vlastníka.
RECT&rect [in] Struktura RECT určující velikost a umístění dialogového okna.
dwInitParam
[v] Určuje hodnotu, která se má předat do dialogového okna v parametru lParam zprávy WM_INITDIALOG.
Návratová hodnota
Popisovač nově vytvořeného dialogového okna.
Poznámky
Toto dialogové okno je automaticky připojeno k objektu CDialogImpl
. Chcete-li vytvořit modální dialogové okno, zavolejte DoModal. Druhé přepsání výše se používá pouze s CComControl.
CDialogImpl::D estroyWindow
Zničí bezmodální dialogové okno.
BOOL DestroyWindow();
Návratová hodnota
TRUE, pokud dialogové okno bylo úspěšně zničeno; jinak NEPRAVDA.
Poznámky
Vrátí hodnotu TRUE, pokud bylo dialogové okno úspěšně zničeno; jinak NEPRAVDA.
CDialogImpl::D ialogProc
Tato statická funkce implementuje proceduru dialogového okna.
static LRESULT CALLBACK DialogProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
Parametry
hWnd
[v] Popisovač dialogového okna.
uMsg
[v] Zpráva byla odeslána do dialogového okna.
wParam
[v] Další informace specifické pro zprávu
lParam
[v] Další informace specifické pro zprávu
Návratová hodnota
TRUE, pokud je zpráva zpracována; jinak NEPRAVDA.
Poznámky
DialogProc
pomocí výchozí mapy zpráv směruje zprávy na příslušné obslužné rutiny.
Můžete přepsat DialogProc
, abyste zadali jiný mechanismus pro zpracování zpráv.
CDialogImpl::D oModal
Vytvoří modální dialogové okno.
INT_PTR DoModal(
HWND hWndParent = ::GetActiveWindow(),
LPARAM dwInitParam = NULL);
Parametry
hWndParent
[v] Popisovač okna vlastníka. Výchozí hodnota je návratová hodnota GetActiveWindow Win32 funkce.
dwInitParam
[v] Určuje hodnotu, která se má předat do dialogového okna v parametru lParam zprávy WM_INITDIALOG.
Návratová hodnota
V případě úspěchu hodnota parametru nRetCode zadaná ve volání EndDialog. V opačném případě - 1.
Poznámky
Toto dialogové okno je automaticky připojeno k objektu CDialogImpl
.
Chcete-li vytvořit bezmodální dialogové okno, zavolejte vytvořit.
CDialogImpl::EndDialog
Zničí modální dialogové okno.
BOOL EndDialog(int nRetCode);
Parametry
nRetCode
[v] Hodnota, kterou má vrátit CDialogImpl::D oModal.
Návratová hodnota
TRUE Pokud je dialogové okno zničeno; jinak NEPRAVDA.
Poznámky
EndDialog
musí být volána prostřednictvím dialogového okna. Po zničení dialogového okna systém Windows použije hodnotu nRetCode jako návratovou hodnotu pro DoModal
, která vytvořila dialogové okno.
Poznámka:
Nevolejte EndDialog
zničit bezmodální dialogové okno. Místo toho volejte CWindow::D estroyWindow .
CDialogImpl::GetDialogProc
Vrátí DialogProc
, aktuální dialogové okno procedura.
virtual WNDPROC GetDialogProc();
Návratová hodnota
Aktuální dialogové okno procedura.
Poznámky
Tuto metodu přepište tak, aby se dialogová procedura nahradila vlastními.
CDialogImpl::MapDialogRect
Převede (mapy) jednotky dialogového okna zadaného obdélníku na jednotky obrazovky (pixely).
BOOL MapDialogRect(LPRECT lpRect);
Parametry
lpRect
Odkazuje na CRect
objekt nebo strukturu RECT , která má přijímat souřadnice klienta aktualizace, která uzavře oblast aktualizace.
Návratová hodnota
Nenulové, pokud aktualizace proběhne úspěšně; 0, pokud se aktualizace nezdaří. Pokud chcete získat rozšířené informace o chybě, zavolejte GetLastError
.
Poznámky
Funkce nahradí souřadnice v zadané RECT
struktuře převedenými souřadnicemi, což umožňuje použít strukturu k vytvoření dialogového okna nebo umístění ovládacího prvku v dialogovém okně.
CDialogImpl::OnFinalMessage
Volá se po přijetí poslední zprávy (obvykle WM_NCDESTROY
).
virtual void OnFinalMessage(HWND hWnd);
Parametry
hWnd
[v] Popisovač okna, který je zničen.
Poznámky
Všimněte si, že pokud chcete objekt po zničení okna automaticky odstranit, můžete volat odstranění, zde.
CDialogImpl::StartDialogProc
Volá se pouze jednou, když se první zpráva přijme, aby bylo možné zpracovat zprávy odeslané do dialogového okna.
static LRESULT CALLBACK StartDialogProc(
HWND hWnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam);
Parametry
hWnd
[v] Popisovač dialogového okna.
uMsg
[v] Zpráva byla odeslána do dialogového okna.
wParam
[v] Další informace specifické pro zprávu
lParam
[v] Další informace specifické pro zprávu
Návratová hodnota
Postup okna.
Poznámky
Po počátečním volání StartDialogProc
, DialogProc
je nastaven jako dialogové okno procedura a další volání jít tam.