Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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.