Megosztás a következőn keresztül:


CDialogImpl osztály

Megjegyzés:

Az aktív sablontár (ATL) továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Ez az osztály metódusokat biztosít egy modális vagy mód nélküli párbeszédpanel létrehozásához.

Fontos

Ez az osztály és tagjai nem használhatók a Windows futtatókörnyezetben futó alkalmazásokban.

Szemantika

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

Paraméterek

T
Az osztály, származik CDialogImpl.

TBase
Az új osztály alaposztálya. Az alapértelmezett alaposztály a CWindow.

Tagok

Metódusok

Funkció Description
Hozz létre Mód nélküli párbeszédpanelt hoz létre.
DestroyWindow Egy mód nélküli párbeszédpanel megsemmisítése.
DoModal Létrehoz egy modális párbeszédpanelt.
EndDialog Egy modális párbeszédpanel megsemmisítése.

CDialogImplBaseT metódusok

Funkció Description
GetDialogProc Az aktuális párbeszédpanel-eljárást adja vissza.
MapDialogRect A megadott téglalap párbeszédpanel-egységeit képernyőegységekre (képpontokra) képezi le.
OnFinalMessage Az utolsó üzenet fogadása után hívva, általában WM_NCDESTROY.

Statikus függvények

Funkció Description
DialogProc Feldolgozza a párbeszédpanelre küldött üzeneteket.
StartDialogProc Az első üzenet fogadásának hívása a párbeszédpanelre küldött üzenetek feldolgozásához.

Megjegyzések

Ezzel CDialogImpl létrehozhat egy modális vagy mód nélküli párbeszédpanelt. CDialogImpl A párbeszédpanel-eljárást biztosítja, amely az alapértelmezett üzenettérkép használatával irányítja az üzeneteket a megfelelő kezelőkhöz.

Az alaposztály-destruktor ~CWindowImplRoot biztosítja, hogy az ablak eltűnik, mielőtt megsemmisítené az objektumot.

CDialogImpl a CDialogImplBaseT-ből származik, amely viszont a CWindowImplRoot-ből származik.

Megjegyzés:

Az osztálynak meg kell adnia egy tagot IDD , amely megadja a párbeszédpanelsablon erőforrás-azonosítóját. Az ATL Projektvarázsló például automatikusan hozzáadja a következő sort az osztályhoz:

enum { IDD = IDD_MYDLG };

hol MyDlg található a varázsló Nevek lapján megadott rövid név.

További információ erről: Nézze
Vezérlők létrehozása ATL-oktatóanyag
Párbeszédpanelek használata az ATL-ben ATL ablakosztályok
ATL-projekt varázsló ATL-projekt létrehozása
Párbeszédpanelek Párbeszédpanelek és további témakörök a Windows SDK-ban

Requirements

Fejléc: atlwin.h

CDialogImpl::Létrehozás

Mód nélküli párbeszédpanelt hoz létre.

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

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

Paraméterek

hWndParent
[in] A tulajdonos ablakának leírója.

RECT>rect [in] A párbeszédpanel méretét és pozícióját meghatározó RECT-struktúra.

dwInitParam
[in] Megadja a WM_INITDIALOG üzenet lParam paraméterében található párbeszédpanelre továbbítandó értéket.

Visszaadott érték

Az újonnan létrehozott párbeszédpanel leírója.

Megjegyzések

Ez a párbeszédpanel automatikusan csatlakozik az CDialogImpl objektumhoz. Modális párbeszédpanel létrehozásához hívja meg a DoModalt. A fenti második felülbírálást csak a CComControl használja.

CDialogImpl::D estroyWindow

Egy mód nélküli párbeszédpanel megsemmisítése.

BOOL DestroyWindow();

Visszaadott érték

IGAZ, ha a párbeszédpanelt sikeresen megsemmisítették; egyéb esetben HAMIS.

Megjegyzések

IGAZ értéket ad vissza, ha a párbeszédpanelt sikeresen megsemmisítették; egyéb esetben HAMIS.

CDialogImpl::D ialogProc

Ez a statikus függvény implementálja a párbeszédpanel-eljárást.

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

Paraméterek

hWnd
[in] A párbeszédpanel leírója.

uMsg
[in] A párbeszédpanelre küldött üzenet.

wParam
[in] További üzenetspecifikus információk.

lParam
[in] További üzenetspecifikus információk.

Visszaadott érték

IGAZ, ha az üzenet feldolgozása megtörtént; egyéb esetben HAMIS.

Megjegyzések

DialogProc az alapértelmezett üzenetleképező használatával irányítja az üzeneteket a megfelelő kezelőkhöz.

Felülbírálhatja DialogProc az üzenetek kezelésére szolgáló másik mechanizmust.

CDialogImpl::D oModal

Létrehoz egy modális párbeszédpanelt.

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

Paraméterek

hWndParent
[in] A tulajdonos ablakának leírója. Az alapértelmezett érték a GetActiveWindow Win32 függvény visszatérési értéke.

dwInitParam
[in] Megadja a WM_INITDIALOG üzenet lParam paraméterében található párbeszédpanelre továbbítandó értéket.

Visszaadott érték

Ha sikeres, az EndDialog hívásában megadott nRetCode paraméter értéke. Ellenkező esetben -1.

Megjegyzések

Ez a párbeszédpanel automatikusan csatlakozik az CDialogImpl objektumhoz.

Mód nélküli párbeszédpanel létrehozásához hívja meg a Létrehozás parancsot.

CDialogImpl::EndDialog

Egy modális párbeszédpanel megsemmisítése.

BOOL EndDialog(int nRetCode);

Paraméterek

nRetCode
[in] A CDialogImpl::D oModal által visszaadandó érték.

Visszaadott érték

IGAZ, ha a párbeszédpanel megsemmisül; egyéb esetben HAMIS.

Megjegyzések

EndDialog a párbeszédpanelen keresztül kell meghívni. A párbeszédpanel megsemmisítése után a Windows az nRetCode értéket használja a párbeszédpanelt létrehozó párbeszédpanel visszatérési értékeként DoModal.

Megjegyzés:

Ne hívja EndDialog fel a mód nélküli párbeszédpanelek elpusztítására. Hívja inkább a CWindow::D estroyWindow parancsot .

CDialogImpl::GetDialogProc

Visszaadja DialogProcaz aktuális párbeszédpanel-eljárást.

virtual WNDPROC GetDialogProc();

Visszaadott érték

Az aktuális párbeszédpanel-eljárás.

Megjegyzések

Felülbírálhatja ezt a metódust a párbeszédpanel-eljárás sajátra való lecseréléséhez.

CDialogImpl::MapDialogRect

A megadott téglalap párbeszédpanel-egységeit konvertálja (leképzi) képernyőegységekké (képpontokká).

BOOL MapDialogRect(LPRECT lpRect);

Paraméterek

lpRect
Egy olyan objektumra CRect vagy RECT-struktúrára mutat, amely a frissítési régiót tartalmazó frissítés ügyfélkoordinátáinak fogadása.

Visszaadott érték

Nem, ha a frissítés sikeres; 0, ha a frissítés sikertelen. A kiterjesztett hibainformációk lekéréséhez hívja meg a következőt GetLastError:

Megjegyzések

A függvény lecseréli a megadott RECT struktúrában lévő koordinátákat a konvertált koordinátákra, így a struktúra párbeszédpanel létrehozásához vagy vezérlőelemek párbeszédpanelen belüli elhelyezéséhez használható.

CDialogImpl::OnFinalMessage

Az utolsó üzenet fogadása után hívva (általában WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Paraméterek

hWnd
[in] Egy fogópont az ablakhoz, ami elpusztul.

Megjegyzések

Vegye figyelembe, hogy ha automatikusan törölni szeretné az objektumot az ablak megsemmisítésekor, akkor ezt a törlést hívhatja meg; itt.

CDialogImpl::StartDialogProc

A párbeszédpanelre küldött üzenetek feldolgozásához csak egyszer hívhatja meg, amikor az első üzenet érkezik.

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

Paraméterek

hWnd
[in] A párbeszédpanel leírója.

uMsg
[in] A párbeszédpanelre küldött üzenet.

wParam
[in] További üzenetspecifikus információk.

lParam
[in] További üzenetspecifikus információk.

Visszaadott érték

Az ablak eljárása.

Megjegyzések

A kezdeti hívás StartDialogProcDialogProc után a rendszer párbeszédpaneles eljárásként van beállítva, és további hívások mennek oda.

Lásd még

BEGIN_MSG_MAP
osztály áttekintése