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


Lapbeállítás párbeszédpanel

Egy modális párbeszédpanelt jelenít meg, amely lehetővé teszi a felhasználó számára a nyomtatott oldal alábbi attribútumainak beállítását:

  • A papír típusa (boríték, jogi, levél stb.)
  • A papírforrás (kézi takarmány, traktoradagoló, lapadagoló stb.)
  • Az oldal tájolása (álló vagy fekvő)
  • Az oldalmargók szélessége

Page Setup párbeszédpanelt úgy hozhat létre és jeleníthet meg, hogy inicializál egy PAGESETUPDLG struktúrát, és átadja a struktúrát a PageSetupDlg függvénynek. A párbeszédpanelen megjelenő attribútumok azonban a nyomtató képességeitől függően eltérőek lehetnek. Az alábbi ábrán egy tipikus Lapbeállítási párbeszédpanel látható.

lapbeállítási párbeszédpanel

Ha a felhasználó az OK gombra kattint, PageSetupDlg visszaadja IGAZ, miután a PAGESETUPDLG struktúrában különböző tagokat adott meg a felhasználó beállításainak megadásához. A ptPaperSize és rtMargin tagok tartalmazzák a felhasználó által megadott értékeket. A hDevMode és hDevNames tagok globális memóriakezelőket tartalmaznak a DEVMODE és DEVNAMES struktúrákhoz. Ezek a struktúrák további lapinformációkat és a nyomtatóval kapcsolatos információkat tartalmaznak. Ezen információk segítségével előkészítheti a kiválasztott nyomtatónak küldendő kimenetet.

Ha a felhasználó megszakítja a Lapbeállítási párbeszédpanelt, vagy hiba történik, PageSetupDlgHAMISad vissza. A hiba okának megállapításához hívja meg a CommDlgExtendedError függvényt a kiterjesztett hibaérték lekéréséhez.

Ez a szakasz a következő témaköröket ismerteti.

Az Oldalbeállítás párbeszédpanel inicializálása

Alapértelmezés szerint az Lapbeállítás párbeszédpanel az aktuális alapértelmezett nyomtatóval kapcsolatos információkat jeleníti meg. Ha a párbeszédpanelt egy adott nyomtató adatainak megjelenítésére szeretné irányítani, állítsa be egy DEVMODE vagy DEVNAMES struktúrájának tagjait, és rendelje hozzá ezeknek a struktúráknak a globális memóriafogantyúit a PAGESETUPDLGmegfelelő tagjához. Ha megadja a jelenleg nem telepített nyomtató nevét, a párbeszédpanel hibaüzenetet jelenít meg. Ha meg szeretné akadályozni, hogy a párbeszédpanel hibaüzeneteket jelenítsen meg, használja a PSD_NOWARNING értéket. Ha a Lapbeállítás párbeszédpanel megjelenítése nélkül szeretné lekérni az alapértelmezett nyomtató adatait, használja a PSD_RETURNDEFAULT értéket.

Ha az alapértelmezett mérési rendszer hüvelyk, akkor a párbeszédpanel az alapértelmezett mértékegységként több ezer hüvelyket használ. Ha az alapértelmezett mérési rendszer metrika, a párbeszédpanel több száz millimétert használ alapértelmezett mértékegységként. Az alapértelmezett mértékegység felülbírálásához állítsa be a PSD_INHUNDREDTHSOFMILLIMETERS vagy PSD_INTHOUSANDTHSOFINCHES jelzőt a JelzőkPAGESETUPDLG struktúrájának tagjára.

A margók kezdeti értéke alapértelmezés szerint egy hüvelyk. Ha beállítja a PSD_MARGINS jelzőt, a párbeszédpanel megjeleníti az rtMargin tagban megadott kezdeti margóértékeket. A felhasználó által a margókhoz megadható alapértelmezett minimális értékek a nyomtató által megengedett minimális margók. Ha beállítja a PSD_MINMARGINS jelzőt, a párbeszédpanel a rtMinMargin tagban megadott minimális margókat kényszeríti ki.

Ha meg szeretné akadályozni, hogy a felhasználók bizonyos beállításokat válasszanak, állítsa be az alábbi jelölők bármely kombinációját a megfelelő vezérlők letiltásához.

Zászló Jelentés
PSD_DISABLEMARGINS Letiltja azokat a szerkesztési vezérlőket, amelyekben a felhasználó megadja a margóbeállításokat.
PSD_DISABLEORIENTATION Letiltja a Álló és Fekvő választógombokat.
PSD_DISABLEPAPER Letiltja a papírméret és a papírforrás kiválasztásának vezérlőit.
PSD_DISABLEPRINTER Letiltja a Nyomtató gombot.

 

Az Oldalbeállítás párbeszédpanel testreszabása

Megadhat egy egyéni sablont a Lapbeállítás párbeszédpanelhez, például ha az alkalmazásra egyedi további vezérlőket szeretne felvenni. A PageSetupDlg függvény az egyéni sablont használja az alapértelmezett sablon helyett.

Egyéni sablon megadása az Oldalbeállítás párbeszédpanelhez

  1. Hozza létre az egyéni sablont a Prnsetup.dlg fájlban megadott alapértelmezett sablon módosításával. Az alapértelmezett lapbeállítási párbeszédpanelsablonban használt vezérlőazonosítók a Dlgs.h fájlban vannak definiálva.
  2. A PAGESETUPDLG struktúrával engedélyezze a sablont az alábbiak szerint:
      • Ha az egyéni sablon egy alkalmazás vagy dinamikus csatolású tár erőforrása, állítsa be a PSD_ENABLEPAGESETUPTEMPLATE jelzőt a Jelzők tagban. A hInstance és lpPageSetupTemplateName a struktúra tagjaival azonosíthatja a modult és az erőforrásnevet.

        -Vagy-

      • Ha az egyéni sablon már a memóriában van, állítsa be a PSD_ENABLEPAGESETUPTEMPLATEHANDLE jelzőt. A hPageSetupTemplate taggal azonosítsa a sablont tartalmazó memóriaobjektumot.

A párbeszédpanel-eljárásba küldött üzenetek szűréséhez megadhat egy PageSetupHook hook eljárást. Ha egyéni sablont használ további vezérlők definiálásához, meg kell adnia egy PageSetupHook horog eljárást a vezérlők bemenetének feldolgozásához. Emellett PagePaintHook horog eljárást is megadhat a Lapbeállítás párbeszédpanelen megjelenő mintalap tartalmának testreszabásához. További információ a PagePaintHook horog eljárásáról: Mintalap testreszabása.

PageSetupHook hook eljárás engedélyezése

  1. A PAGESETUPDLG struktúra jelzők PSD_ENABLEPAGESETUPHOOK jelölőjének beállítása.
  2. Adja meg a horog eljárás címét az lpfnPageSetupHook tagban.

A WM_INITDIALOG üzenet feldolgozása után a párbeszédpanel-eljárás WM_INITDIALOG üzenetet küld a PageSetupHook hook eljárásnak. Az üzenet lParam paramétere a párbeszédpanel inicializálásához használt PAGESETUPDLG struktúrára mutató mutató.

A mintalap testreszabása

Az Lapbeállítás párbeszédpanelen egy mintalap képe látható, amely bemutatja, hogy a felhasználó kijelölései hogyan befolyásolják a nyomtatott kimenet megjelenését. A kép egy téglalapból áll, amely a kijelölt papír- vagy borítéktípust jelöli, az aktuális margókat pontozott vonalú téglalap, valamint részleges (görög szöveg) karaktereket, amelyek a nyomtatott oldalon a szöveg megjelenését mutatják.

Amikor meghívja a PageSetupDlg függvényt, megadhat egy PagePaintHook horog eljárást a mintalap megjelenésének testreszabásához.

PagePaintHook-horog eljárás engedélyezése

  1. Állítsa be a PSD_ENABLEPAGEPAINTHOOK jelölőt a JelzőkPAGESETUPDLG struktúrájának tagján.
  2. Adja meg a horog eljárás címét az lpfnPagePaintHook tagban.

Amikor a párbeszédpanel a mintalap tartalmának megrajzolására készül, a horog eljárás a következő üzeneteket kapja a lista sorrendjében.

Üzenet Jelentés
WM_PSD_PAGESETUPDLG A párbeszédpanel a mintalap rajzolására készül. A horog eljárás ezzel az üzenetsel előkészítheti a mintalap tartalmának rajzolását.
WM_PSD_FULLPAGERECT A párbeszédpanel a mintalap rajzolására készül. Ez az üzenet a mintalap határoló téglalapját adja meg.
WM_PSD_MINMARGINRECT A párbeszédpanel a mintalap rajzolására készül. Ez az üzenet a margó téglalapot adja meg.
WM_PSD_MARGINRECT A párbeszédpanel a margó téglalapjának rajzolására készül.
WM_PSD_GREEKTEXTRECT A párbeszédpanel a görög szöveg rajzolására készül a margó téglalapján belül.
WM_PSD_ENVSTAMPRECT A párbeszédpanel egy borítékmintalap borítékbélyegző téglalapjában készül rajzolni. Ez az üzenet csak borítékok esetén lesz elküldve.
WM_PSD_YAFULLPAGERECT A párbeszédpanel egy borítékmintalap visszaküldési címének egy részét rajzolja meg. Ez az üzenet borítékokra és más papírméretekre lesz elküldve.

 

Ha a horog eljárás TRUE ad vissza a rajzsorozat első három üzenete (WM_PSD_PAGESETUPDLG, WM_PSD_FULLPAGERECTvagy WM_PSD_MINMARGINRECT) esetében, a párbeszédpanel nem küld több üzenetet, és csak akkor rajzol a mintalapra, amikor a rendszernek újra kell írnia a mintalapot. Ha a horog eljárás mind a három üzenethez HAMIS ad vissza, a párbeszédpanel elküldi a rajzsorozat fennmaradó üzeneteit.

Ha a horog eljárás TRUE a rajzsorozat többi üzenetéhez, a párbeszédpanel nem rajzolja meg a mintalap megfelelő részét. Ha a horog eljárás HAMIS ad vissza ezekhez az üzenetekhez, a párbeszédpanel a mintalap ezen részét rajzolja meg.

Ha meg szeretné akadályozni, hogy a párbeszédpanel megrajzozza a mintalap tartalmát, beállíthatja a PSD_DISABLEPAGEPAINTING jelzőt. Ez a jelző nincs hatással a PagePaintHook horog eljárásra, amely továbbra is megkapja az összes WM_PSD_* üzenetet, és meg tudja rajzolni a mintaoldal tartalmát.