Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.