Sdílet prostřednictvím


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.

Viz také

BEGIN_MSG_MAP
Přehled třídy