Gyakori párbeszédpanelek testreszabása
Használhatja a szokásos párbeszédpaneleket a szokásos űrlapon, vagy testre is szabhatja őket. A felhasználó szempontjából a közös párbeszédpanel fő előnye az alkalmazástól az alkalmazásig való konzisztens megjelenés és funkcionalitás. Ezért fontos, hogy csak akkor szabjon testre egy közös párbeszédpanelt, ha az feltétlenül szükséges egy alkalmazáshoz. Ellenkező esetben a konzisztens megjelenés és az egyszerű kódolási felület elveszik. A megfelelő testreszabások a lehető legtöbb eredeti vezérlőt érintetlenül hagyják. A párbeszédpanel méretének növelése vagy új vezérlők hozzáadása a párbeszédpanelen már elérhető területen megfelelő testreszabás. Az eredeti vezérlők elrejtése vagy az eredeti vezérlők rendeltetésének más módon történő módosítása kevésbé megfelelő testreszabás.
Ez a szakasz a gyakori párbeszédpanelek testreszabásának alábbi módszereit ismerteti:
- Egyéni Sablonok
- Hook eljárások gyakori párbeszédpanelekhez
- gyakori párbeszédpanel-üzenetek
- Súgó és támogatás
Egyéni sablonok
A gyakori párbeszédpanelek alapértelmezett sablonjai határozzák meg a párbeszédpanel szabványos vezérlőinek számát, típusát és pozícióját. Egyéni sablont is meghatározhat, amely hozzáférést biztosít a felhasználóknak az alkalmazás egyedi vezérlőihez.
Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek kivételével az alapértelmezett sablont úgy módosíthatja, hogy létrehozhasson egy egyéni sablont, amely felülírja az alapértelmezett sablont. Az egyéni sablon meghatározza a standard vezérlők típusát és pozícióját, valamint a további vezérlőket.
Ha egyéni párbeszédpanelsablont hoz létre az alapértelmezett párbeszédpanelsablon módosításával, győződjön meg arról, hogy a hozzáadott vezérlők azonosítói egyediek, és nem ütköznek a szabványos vezérlők azonosítóival. Az alábbi táblázat felsorolja az alapértelmezett sablonfájl nevét, és tartalmazza az egyes gyakori párbeszédpanel-típusok fájlját.
Párbeszédpanel típusa | Sablonfájl | Fájl belefoglalása |
---|---|---|
Szín | Color.dlg | ColorDlg.h |
keresése | Findtext.dlg | Dlgs.h |
Betűtípus | Betűtípus.dlg | Dlgs.h |
megnyitása (több kijelölés) | Fileopen.dlg | Dlgs.h |
megnyitása (egyetlen kijelölés) | Fileopen.dlg | Dlgs.h |
lapbeállítás | Prnsetup.dlg | Dlgs.h |
Nyomtatás | Prnsetup.dlg | Dlgs.h |
Nyomtatási beállítás (elavult) | Prnsetup.dlg | Dlgs.h |
csere | Findtext.dlg | Dlgs.h |
Egyéni sablon engedélyezéséhez be kell állítania egy jelölőt a Jelzők tagjának a párbeszédpanel megfelelő szerkezetében. Ha a sablon egy alkalmazás vagy dinamikus csatolású kódtár erőforrása, állítson be egy ENABLETEMPLATE jelzőt a Jelzők tagban, és használja a hInstance és lpTemplateName a struktúra tagjait a modul és az erőforrásnév azonosításához. Ha a sablon már a memóriában van, állítson be egy ENABLETEMPLATEHANDLE jelzőt a Jelzők tagban, és a hInstance taggal azonosítsa a sablont tartalmazó memóriaobjektumot.
A legtöbb esetben engedélyeznie kell egy hook eljárást is a párbeszédpanelen az egyéni sablon további vezérlőinek támogatására és azokon keresztül történő bevitel feldolgozására.
Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében az alapértelmezett sablonok nem módosíthatók. Ehelyett az egyéni sablon egy gyermek párbeszédpanelt határoz meg, amely csak a szabványos párbeszédpanelhez hozzáadni kívánt elemeket tartalmazza. Az egyéni sablon egy statikus vezérlőt is tartalmazhat, amely meghatározza a standard vezérlők csoportjának helyét az alablakon. További információ: Explorer-Style Egyéni sablonok.
Gyakori párbeszédpanelek horgonyeljárásai
Az egyes gyakori párbeszédpanelek esetében engedélyezheti, hogy a horog eljárás feldolgozhassa az alapértelmezett párbeszédpanel-eljárásból származó üzeneteket. A párbeszédpanel-horog eljárásoknak két általános típusa van:
- A leggyakoribb párbeszédpanelekhez használt szokásos horog eljárás
- Explorer-stílusú hook eljárás, amelyet a Megnyitás és a Mentés másként párbeszédpanel támogat.
Ha szabványos horog eljárást ad meg az egyik gyakori párbeszédpanelhez, az alapértelmezett párbeszédpanel-eljárás az alábbiak szerint kezeli az üzeneteket.
Üzenet | Kezelés |
---|---|
WM_INITDIALOG | Az alapértelmezett párbeszédpanel-eljárás feldolgozza az üzenetet, mielőtt továbbítanák a horog eljárásnak. Az üzenet lParam paramétere a párbeszédpanel létrehozásakor megadott inicializálási struktúra mutatója. |
Minden más üzenet | A horog eljárás kapja meg először az üzenetet. Ezután a horog eljárás visszatérési értéke határozza meg, hogy az alapértelmezett párbeszédpanel-eljárás feldolgozza-e az üzenetet, vagy figyelmen kívül hagyja azt. |
Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében a horog eljárás nem fogadja a párbeszédpanel szokásos vezérlőinek szánt üzeneteket. Ehelyett értesítést kap a párbeszédpanelről, és üzeneteket kap az egyéni sablonban definiált további vezérlőkről. További információ: Explorer-Style Horogfolyamatok.
A horogművelet engedélyezéséhez állítson be egy ENABLEHOOK értéket a párbeszédpanel struktúrájának megfelelő jelzők tagban. Ha egy ENABLEHOOK jelző van beállítva, a lpfnHook tagnak meg kell adnia a horog eljárás címét.
Az alábbi táblázat azt mutatja be, hogy milyen típusú horog eljárást kell megadni az egyes gyakori párbeszédpanelekhez.
Párbeszédpanel típusa | Horog folyamat |
---|---|
Szín | CCHookProc |
keressen vagy cserélje | FRHookProc |
betűtípus | CFHookProc |
Megnyitás vagy Mentés másként (Explorer-stílusú) | OFNHookProc |
Megnyitás vagy Mentés másként (Régi stílusú) | OFNHookProc régi stílusban |
Nyomtatás | PrintHookProc |
Lapbeállítás | PageSetupHook |
A Lapbeállítás párbeszédpanelen megadhat egy PagePaintHook hook eljárást is. Ez egy speciális horog eljárás, amellyel testre szabhatja a Lapbeállítás párbeszédpanelen megjelenő mintalap megjelenését.
Jegyzet
A Nyomtatás beállítása párbeszédpanelt felváltotta a Lapbeállítás párbeszédpanel. Az alkalmazásoknak az Lapbeállítás párbeszédpanelt kell használniuk. A kompatibilitás érdekében azonban a PrintDlg függvény továbbra is támogatja a Nyomtatási beállítás párbeszédpanel megjelenítését. A Nyomtatási beállítás párbeszédpanelen megadhat egy SetupHookProc horog eljárást.
Gyakori párbeszédpanel-üzenetek
A gyakori párbeszédpanelek üzenetekkel értesítik az ablakeljárást vagy a horog eljárást bizonyos események bekövetkezésekor. Emellett vannak olyan üzenetek is, amelyeket elküldhet egy közös párbeszédpanelre az információk lekéréséhez vagy a párbeszédpanel viselkedésének vagy megjelenésének szabályozásához. Ez a szakasz a RegisterWindowMessage függvény által regisztrált gyakori párbeszédpaneleket, a Betűtípus párbeszédpanel és Lapbeállítási párbeszédpanel által használt üzeneteket, valamint az Explorer-stílusú A megnyitása és Mentés másként párbeszédpanelek által használt üzeneteket ismerteti.
A Common Dialog Box Library az üzenetsztringek készletét határozza meg. A RegisterWindowMessagehasználatával átadhat egy ilyen üzenetsztringhez kapcsolódó állandót a, hogy megkapja az üzenetazonosítót. Ezután az azonosítóval észlelheti és feldolgozhatja a közös párbeszédpanelről küldött üzeneteket, vagy üzeneteket küldhet egy közös párbeszédpanelre. Az alábbi táblázat az üzenetállandókat és azok használatát mutatja be.
Kapcsolatok | Használ |
---|---|
COLOROKSTRING | A Szín párbeszédpanel akkor küldi el ezt az üzenetet a horog eljárásnak, amikor a felhasználó kiválaszt egy színt, és az OK gombra kattint. A hook függvény elfogadhatja a színt, vagy elutasíthatja azt, és kényszerítheti a párbeszédpanelt, hogy nyitva hagyja. |
FILEOKSTRING | Egy megnyitása vagy Mentés másként párbeszédpanel akkor küldi el ezt az üzenetet a horog eljárásnak, amikor a felhasználó kiválaszt egy fájlnevet, és az OK gombra kattint. A horog eljárás elfogadhatja a fájlnevet, vagy elutasíthatja azt, és kényszerítheti a párbeszédpanel megnyitását. Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében ennek az üzenetnek a helyébe lépett a CDN_FILEOK értesítési üzenet. |
FINDMSGSTRING | A Keresés vagy Csere párbeszédpanel a szülőablak ablakának eljárására küldi ezt az üzenetet, amikor a felhasználó a Következő, Cserevagy Az összes cseréjegombra kattint, vagy bezárja a párbeszédpanelt. Az üzenet lParam paramétere a felhasználó bemenetét tartalmazó FINDREPLACE struktúrára mutató mutató. |
HELPMSGSTRING | Minden gyakori párbeszédpanel elküldi ezt az üzenetet a szülőablak ablakának eljárásának, amikor a felhasználó a Súgó gombra kattint. Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében a CDN_HELP értesítési üzenet felülírta ezt az üzenetet. |
LBSELCHSTRING | Egy megnyitása vagy Mentés másként párbeszédpanel a fájlnév lista kiválasztásának módosításakor a horog eljárásnak küldi ezt az üzenetet. Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében a CDN_SELCHANGE értesítési üzenet felülírta ezt az üzenetet. |
SETRGBSTRING | A hook eljárás elküldheti ezt az üzenetet egy Szín párbeszédpanelre az aktuális szín kiválasztás beállításához. |
SHAREVISTRING | Egy Megnyitás vagy Mentés másként párbeszédpanel ezt az üzenetet küldi a hook eljárásnak, ha megosztási szabálysértés történik a kijelölt fájl esetében, amikor a felhasználó az OK gombra kattint. Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek esetében ezt az üzenetet felváltotta a CDN_SHAREVIOLATION értesítési üzenet. |
Egyes gyakori párbeszédpanelek más ablaküzeneteket küldenek és fogadnak. A Betűtípus párbeszédpanel horog eljárása bármely WM_CHOOSEFONT_* üzenetet küldhet a Betűtípus párbeszédpanelre. További információ: Betűtípus párbeszédpanel. A Lapbeállítás párbeszédpanel WM_PSD_* üzeneteket küld, ha engedélyezte a PagePaintHook horog eljárást. További információ: Lapbeállítás párbeszédpanel.
Az Explorer-stílusú Megnyitás és Mentés másként párbeszédpanelek támogatják az előre definiált üzeneteket. Ezek közé tartoznak a WM_NOTIFY üzenet formájában küldött értesítési üzenetek a horog eljárásnak, valamint azokat az üzeneteket, amelyeket a horog eljárás elküldhet a párbeszédpanelre. Az üzenetek teljes listáját a Explorer-Style Hook Procedurescímű témakörben találja.
Segítség támogatás
A gyakori párbeszédpanelek környezetfüggő segítséget nyújtanak a párbeszédpanel szabványos vezérlőihez. Ha további segítséget szeretne nyújtani egy gyakori párbeszédpanelhez, megjeleníthet egy Súgó gombot, és feldolgozhatja a felhasználó által a gombra kattintva létrehozott üzeneteket. A Súgó gomb az alapértelmezett helyzetérzékeny súgó kiegészítése. A Súgó gomb hasznos a párbeszédpanel általános céljának leírásához, ahogyan az az alkalmazásra vonatkozik.
Context-Sensitive segítség
Minden gyakori párbeszédpanel környezetfüggő segítséget nyújt a párbeszédpanel szabványos vezérlőihez. A felhasználó az alábbi módszerek bármelyikével megjelenítheti az egyes vezérlőkhöz tartozó súgót:
- Válassza ki a vezérlőt, és nyomja le az F1 billentyűt.
- Kattintson a ? gombot a címsorban, majd kattintson egy vezérlőre.
- Kattintson a jobb egérgombra egy vezérlő felett.
Ha új vezérlők hozzáadásával testre szab egy párbeszédpanelt, a segédtámogatást is ki kell terjesztenie ezekhez a vezérlőkhöz a horog eljárással kapcsolatos segítségkérések feldolgozásával. A horog eljárás a következő üzeneteket kapja, amikor a felhasználó segítséget kér.
Felhasználói művelet | Üzenet |
---|---|
Kattintson a jobb egérgombbal egy vezérlőn. | WM_CONTEXTMENU |
Nyomja le az F1 billentyűt. | WM_HELP |
A ? gombra kattintott a címsorban, majd egy vezérlőre kattintott. | WM_HELP |
Ezeket az üzeneteket a hozzáadott vezérlők esetében kell feldolgoznia, de hagyja, hogy az alapértelmezett párbeszédpanel-eljárás feldolgozzák a szabványos vezérlők üzenetét. További információ az üzenetek feldolgozásáról: Súgó.
A Súgó gomb
A Súgó gombot bármelyik gyakori párbeszédpanelen megjelenítheti, ha beállít egy SHOWHELP értéket a párbeszédpanel inicializálási struktúrájának jelzőiben. Ha megjeleníti a Súgó gombot, fel kell dolgoznia a felhasználó segélykérését. A feldolgozás elvégezhető az alkalmazás egyik ablakműveletében vagy a párbeszédpanel horog eljárásában. Általában a WinHelp függvény meghívásával dolgozná fel a segítségkérést.
Ha a súgóüzeneteket az ablak egyik eljárásában szeretné feldolgozni, meg kell kapnia a HELPMSGSTRING érték által meghatározott sztring üzenetazonosítóját, és azonosítania kell az üzenetek fogadásához használt ablakot. Az üzenetazonosító lekéréséhez adja meg HELPMSGSTRING paraméterként a RegisterWindowMessage függvény hívásában. A párbeszédpanel létrehozásakor használja a hwndOwner a párbeszédpanel inicializálási struktúrájának tagját az üzenetek fogadására szolgáló ablak azonosításához. A párbeszédpanel-eljárás minden alkalommal elküldi az üzenetet az ablakműveletnek, amikor a felhasználó a Súgó gombra kattint.
A segédüzenetek horog eljárásban történő feldolgozásához fel kell dolgoznia a WM_COMMAND üzenetet. A horog eljárás segítséget nyújt, ha az üzenet wParam paramétere azt jelzi, hogy a felhasználó a Súgó gombra kattintott. A Súgó gomb azonosítója a pshHelp állandó, amely a Dlgs.h fájlban van definiálva.
Az Explorer-stílusú megnyitása és Mentés másként párbeszédpanelek nem kapnak WM_COMMAND üzeneteket a Súgó gombhoz. Ehelyett a párbeszédpanel CDN_HELP értesítési üzenetet küld a horog eljárásnak, amikor a Súgó gombra kattint.