Normál párbeszédablakok

1. Bevezetés

A szerkezet a MFC könyvtár számos olyan osztályok, amelyek képviselik a standard párbeszédpanelek. Ezek az osztályok lehetővé teszi, hogy könnyen végre ilyen gyakran használt műveleteket, mint a fájlok megnyitása és elmentése, színválasztás, betűtípus választás, stb Mindezek osztályok öröklik CCommonDialog, ami viszont származik az alap osztály CDialog.

Íme az osztályok standard párbeszédablak és funkciók:

  • CColorDialog - panel válassza ki a színt
  • CFileDialog - fájl kiválasztó panel megnyitása és mentése lemezre
  • CFindReplaceDialog - pad műveletek keresés és csere
  • CFontDialog - Panel válassza ki a betűtípust
  • CPrintDialog - panel megjelenítéséhez a dokumentum kinyomtatásához
  • CPageSetupDialog - dokumentum formátum kiválasztása panel
  • COleDialog - Panel kezeléséért OLE technológiát

Osztályok irányadó szabvány párbeszéddobozok meghatározott afxdlgs.h fájlt. Ezért ezeknek a használata osztályok a kérelmet, akkor ezt a fájlt a forrás szövegben az #include direktíva.

2. A színválasztás panel (CColorDialog osztály)

Megjelenítéséhez a standard párbeszédablak válassza ki a színt kell létrehozni egy objektumot CColorDialog osztályba, majd hívja DoModal módszer. Amikor létrehoz egy osztály SColorDialog objektumot, használja az alábbi kivitelező:

Minden paraméter opcionális kivitelező azonban ezen paraméterek felhasználása segíthet bizonyos esetekben.

ClrInit első paraméter lehetővé teszi, hogy a színt az alapértelmezett beállítás megnyitása után a párbeszédablak. Ha a paraméter nincs megadva, mint a szín az alapértelmezett beállítás, fogja használni a fekete színt.

DwFlags paraméter tartalmaz egy sor olyan zászlók, amelyek szabályozzák az interaktív szín kiválasztása panelen. Használja, hogy blokkolni vagy engedélyezni működésének néhány interaktív színválasztás kezelőszervet. Ha létrehoz egy objektumot CColorDialog nem adja meg a dwFlags paraméter, azonban testre szabhatja a párbeszédablak a kapcsolatot az elem m_cc ebben az osztályban. A dwFlags paraméter megadva a kivitelező lehet inicializálni m_cc. Változások m_cc elemet kell tenni, mielőtt a panel jelenik meg a képernyőn.

Utolsó pParentWnd paraméter lehet használni, hogy adja meg a szülő ablakot a párbeszédablak.

Osztály módszerek CSolorDialog

Jelenítse meg a szín párbeszédablak panel a képernyőn, akkor kell használni a DoModal módszer. Miután a képernyőn megjelenő panel, a felhasználó kiválaszthatja a színt, és kattintson az OK vagy a Mégse gombot a szín, vagy elhagyja azt. Ha a párbeszédablak bezárul, DoModal eljárás visszatér IDOK és IDCANCEL, attól függően, hogy melyik gombot kattintás:

A képernyőn megjelenik egy szabványos színválasztó párbeszédablakban panel Color. A felső felében előlap 48 található téglalap, amelyek a különböző színek. Ezek az úgynevezett elsődleges színek (alapszín). Megadhatja az egyik ezek a színek, és kattintson az OK gombra. Miután a párbeszédablak bezárul (DoModal eljárás befejezte munkáját), akkor CColorDialog osztály módszerek megtanulni a színe a felhasználó által kiválasztott.

Annak megállapításához, a szín a felhasználó által kiválasztott, lehetséges módszer alkalmazható a GetColor osztály CColorDialog. Ez a módszer visszaadja COLORREF érték megfelel a kiválasztott színt.

Ha a felhasználó nem elég alapszín bemutatott párbeszédablakban Color, akkor válasszon ki legfeljebb 16 további színben. Ehhez azt kell nyomni DefineCustom Színek gombra. A párbeszédablak fog változni a megjelenése - nem lesz további ellenőrzéseket, amely lehetővé teszi, hogy kiválassza bármelyike ​​16777216 szín. Amikor a színt választjuk, akkor kattintson az Egyedi színek gombra. A kiválasztott szín lesz hozzá a kiegészítő színek (Egyéni szín) - az egyik szabad téglalapok fog fordulni a megfelelő színt.

Segítségével CColorDialog GetSavedCustomColors osztály módszer, megadhat további színt a felhasználó által kiválasztott a párbeszédablakban Color. Ez a módszer Egy mutatót ad vissza egy sor 16 elemek típusú COLORREF. A tömb mindegyik elem írja le egy további színt.

Ha a párbeszédablak megjeleníti a Color app az első alkalommal, minden téglalap megjelenítő további színei fehér. Komplementer színek a felhasználó által kiválasztott tárolja az alkalmazás. Az újraindítás után a másodlagos színek visszaállítása alkalmazásokat.

3. Fájl kiválasztása panel (CFileDialog Class)

Között a standard párbeszédablak, amely MFC könyvtár, egy különleges besorolású, vannak táblák, hogy működjön együtt a fájlrendszer - Megnyitás és Mentés másként. Nyílt párbeszéd panel segítségével válasszon ki egy vagy több fájlt, és nyissa meg a későbbi használatra. Mentés másként párbeszéd panel lehetővé teszi, hogy válassza ki a fájl nevét, hogy írjon a dokumentumot.

Kezeléséhez a Megnyitás párbeszédpanelen, és a Save As egyik CFileDialog osztályban. Tekintsük a CFileDialog kivitelező részletesebben:

CFileDialog osztályú objektumok képviselik a párbeszéd panel megnyitása Mentés másként vagy attól függően, hogy a paraméter bOpenFileDialog. Ha bOpenFileDialog paraméter értékét tartalmazza TRUE, akkor az objektum létrehozásakor, a központ párbeszédablak megnyitása, és ha FALSE - előlap Save As.

BOpenFileDialog paraméter az egyetlen kötelező paraméter, hogy meg kell adnia. A többi paraméter CFileDialog osztály kivitelező beállíthatja a különböző üzemmódokat panel és nem lehet megadni.

Ahhoz, hogy hozzon létre egy CFileDialog objektum osztály. képviselő egy párbeszédablak fájlok megnyitását (mFileOpen), és a tárgy, amely képviseli a párbeszédablak fájlok mentéséhez (mFileSaveAs), akkor a következő kivitelező kéri:

Sok esetben fájlnevek kívánt kinyitni vagy bezárni, egy bizonyos kiterjesztése. lpszDefExt paraméter lehetővé teszi, hogy meghatározza a fájl kiterjesztését az alapértelmezett. Azaz, ha a felhasználó meghatározásakor a fájlnév nem határozza kiterjesztése, a fájlnév automatikusan hozzárendel egy bővítmény az alapértelmezett. Ha a meghatározás a tulajdonságok párbeszédablak beállításával a programozó lpszDefExt NULL, a fájl kiterjesztését meg kell adni kifejezetten a felhasználó.

Bizonyos esetekben a párbeszédablak jelenik meg az előre kiválasztott fájl nevét. Ahhoz, hogy adja meg a fájl nevét, az alapértelmezett beállítás kerül alkalmazásra lpszFileName. Ha lpszFileName paraméter NULL, ez a funkció nincs megvalósítva.

A dwFlags jelölj meg lehet változtatni a megjelenését, és néhány egyéb szabvány dialógus osztály CFileDialog panelek. Ez rekord kombinációja a zászlókat, hogy ellenőrizzék a különböző jellemzőket ezeket a paneleket. Például OFN_HIDEREADONLY zászló azt jelenti, hogy az előlap eltávolítása a kapcsolót „írásvédett”, és OFN_OVERWRITEPROMPT zászló (használt Save As panel) -, hogy meg kell, hogy megjelenjen a párbeszédablak egy figyelmeztetés, ha a felhasználó úgy dönt, hogy mentse a nevét egy meglévő fájlt.

Fájl párbeszédablak panelek jellemzően egy listát az úgynevezett szűrők, beleértve a fájl nevét és típusát fájlnévkiterjesztések az ilyen típusú. Szűrő kiválasztása a felhasználó jelzi, hogy ő akarja, hogy csak ezek rendelkeznek a megfelelő kiterjesztésű fájlokat egy bizonyos típusú. Fájlokat más bővítmények a párbeszédablak jelenik meg.

szűrőlistának adható meg a paraméter lpszFilter. Ugyanakkor, megadhatja több szűrőt. Minden szűrő által meghatározott két vonal - tartalmazó karakterláncot a szűrő neve, és a sort, amelyben felsorolja a megfelelő fájlnévkiterjesztések. Ha az egyik típus felel meg több bővítmények vannak elválasztva ;. A karakterlánc nevét tartalmazó szűrő el van választva a sort a kiterjesztett karakter fájl |. Ha egynél több szűrőt használunk, ők is elválasztva a szimbólum |. Például, mint egy húr, amely meghatározza a szűrőket, akkor a húr a következő formában:

Párbeszédpanelek által nyújtott CFileDialog osztályú objektumok, lehet, hogy nem egy szülő ablakot. Megadásához a szülő ablakot, akkor meg kell, hogy adja át a kivitelező CFileDialog mutató azt egy paraméter pParentWnd.

CFileDialog osztály módszerek

Létrehozása CFileDialog objektum osztály még mindig nem jelenik meg a megfelelő párbeszédablak. Ehhez használja a módszert DoModal osztály CFileDialog.Pri hívja DoModal módszert korábban létrehozott CFileDialog osztály objektum megfelelő párbeszédablak a képernyőn. Miután a felhasználó kilép a párbeszédablakban DoModal eljárás visszatér IDOK vagy IDCANCEL siker, és a nulla - a hiba esetén:

Miután a felhasználó bezárja a párbeszédablakot, és DoModal eljárás visszatér, akkor más módszerekkel CFileDialog osztályban. hogy meghatározzák a nevét a kiválasztott fájlokat:

  • GetPathName - a teljes elérési utat a fájl
  • GetFileName - nevét adja meg a kiválasztott fájl
  • GetFileExt - Meghatározza a kijelölt fájlnévkiterjesztés
  • GetFileTitle - Lehetővé teszi, hogy adja meg a címet a kiválasztott fájl
  • GetNextPathName - Ha a párbeszédablak segítségével kiválaszthatja, hogy egyszerre több fájlt, akkor használja ezt a módszert, hogy meghatározza a teljes elérési útját a következő kiválasztott fájlok
  • GetReadOnlyPref - Lehetővé teszi, hogy a status attribútumot „csak olvasható” (read-only) a kiválasztott fájl
  • GetStartPosition - Visszaadja az első elemet a fájlnevek listáját

A legfontosabb módszer - GetPathName. Ő kapja a teljes elérési útját a fájl kiválasztva a Megnyitás párbeszédpanelen vagy a Mentés másként. Ha a párbeszédablak lehetővé teszi, hogy több fájlt jelöl ki, akkor GetPathName metódus visszaadja egy tömböt, amely több vonalak megszüntetéséről bináris nulla. Ezek közül az első sorban tartalmazza az elérési utat a könyvtárat, ahol a kiválasztott fájl megtalálható, a fennmaradó tételek tartalmazzák a nevét a kiválasztott fájlokat. Jelölje ki a sort, amely a könyvtár elérési útja nem okoz problémát, de annak érdekében, hogy a nevét, a kijelölt fájlok, akkor kell használni a módszereket és GetStartPosition GetNextPathName.

GetStartPosition eljárás visszatér Pozíció típusa. Úgy tervezték, hogy át GetNextPathName módszer és kap a következő név a kiválasztott fájl. Ha a felhasználó nem választott egy fájlt, GetStartPosition metódus visszaad egy NULL értéket. A kapott értéket ezzel a módszerrel kell beírni az ideiglenes változtatható pozíció típusát és adja át az arra való utalás GetNextPathName módszer. GetNextPathName módszer visszaadja a teljes elérési utat az első a kiválasztott fájlokat a párbeszéd panel, és módosítsa a változó értékét pos, át a link. Az új érték a pos lehet használni a későbbi hívások GetNextPathName eljárás és vételi útvonalai az összes többi kiválasztott fájlokat. Amikor GetNextPathName eljárás visszatér a nevét minden kiválasztott fájlokat a pos változó rögzített NULL.

A panelek megnyitása és mentése A kapcsoló „csak olvasható”. Alapértelmezésben ez a preklyuchatel nem jelenik meg. Ha kell használni ezt a kapcsolót, akkor meg kell szüntetni a használata OFN_HIDEREADONLY zászló.

GetReadOnlyPref a módszer lehetővé teszi, hogy meghatározza a helyzetét „csak olvasható” kapcsolót. Ha a kapcsoló be van kapcsolva, GetReadOnlyPref metódus visszaad egy nem nulla értéket. Egyébként GetReadOnlyPref nulla értékkel tér vissza.

4. betűtípus kiválasztó sáv (CFontDialog osztály)

Normál betűtípus párbeszédablak kiválasztásához használt betűtípust. Ez a panel jelenik meg a betűtípusok listája telepítve van a rendszerben, és lehetővé teszi, hogy válassza ki a betűtípus nevét, betűstílus, és egyéb paramétereket.

A szabályozás a betűtípus párbeszédablakban panel MFC osztálykönyvtárat benne CFontDialog osztályban. Módszerek Az ebbe az osztályba lehet használni, hogy kijelző font panel és a meghatározó font jellemzőit a felhasználó által kiválasztott. CFontDialog osztály konstruktor:

Minden kivitelező paraméterek megadása nem kötelező. Mércét betűtípus választás panel fut az alapértelmezett osztály konstruktor CFontDialog, megfelel a legtöbb felhasználó számára.

LplfInitial paraméter egy mutató egy LOGFONT szerkezet, amely leírja a logikai font. Ha ezt az opciót használjuk, akkor az alapértelmezett a párbeszéd panel lesz kiválasztva betűtípus, legmegfelelőbb leírt LOGFONT szerkezetét.

DwFlags paraméter egy sor zászlók, amely szabályozza a különböző üzemmódokat panel. Például CF_EFFECTS zászló teszi a felhasználó számára, aláhúzott és áthúzott betűk, hogy meghatározza a színét a levelek, és CF_SCREENFONTS zászló - lehetővé teszi, hogy választani csak a képernyőn megjelenő betűk.

Keresztül pdcPrinter paramétert lehet átadni a kivitelező a nyomtató kijelzőjén összefüggésben, amelyet be kell mutatni a betűtípus Font párbeszéd panel. Ez a paraméter csak akkor, ha a dwFlags megadott paraméter CF_PRINTERFONTS vagy CF_BOTH zászlókat.

Keresztül pParentWnd paraméter határozza meg a szülő ablakot a párbeszédablak betűtípus panel.

Osztály módszerek CFontDialog

Jelenítse meg a párbeszédet betűtípus Panel szánt virtuális módszer DoModal. Ha a felhasználó kiválaszt egy font, és rákattintott az OK, DoModal metódus visszaadja ID IDOK, ha a felhasználó törölte a választott betűtípus, DoModal eljárás visszatér IDCANCEL ID:

A másik osztályának meghatározására használt módszerek a jellemzői a betűtípust a felhasználó által kiválasztott.

GetCurrentFont módszer lehetővé teszi, hogy azonnal azonosítani az összes jellemzőit a kiválasztott betűtípus, írásban azokat a LOGFONT szerkezetét.

A többi osztály módszer lehetővé teszi, hogy meghatározza csak az egyén jellemzői a kiválasztott font:

  • GetFaceName - nevét adja meg a kiválasztott font
  • GetStyleName - nevét adja meg a kiválasztott betűtípust
  • GetSize - Visszaadja a méret a kiválasztott font
  • GetColor - Visszaadja a színét a választott betűtípus
  • GetWeight - Visszaadja a sűrűsége a kiválasztott font
  • IsStrikeOut - Meghatározza, hogy a kiválasztott betűkészlet Keresztvonalas
  • IsUnderline - Meghatározza, hogy a kiválasztott betűkészlet aláhúzás
  • IsBold - Meghatározza, hogy a betűtípus félkövér
  • IsItalic - Meghatározza, hogy a betűkészlet dőlt

5. O panel dokumentumok nyomtatását (CPrintDialog osztály)

CPrintDialog osztály lehet használni, hogy két típusú párbeszéd panelek tervezett dokumentumok nyomtatására és a választott formátumokhoz. Emellett CPrintDialog osztály is használható CPageSetupDialog osztályban. Ez lehetővé teszi, hogy hozzon létre egy párbeszédablak válassza ki a formátumot a dokumentum, amely egy kissé eltérő megjelenés.

Olyan alkalmazásokban készített használatával MFC AppWizard és mintájára épült dokumentum megjelenését, az alapértelmezett épül, hogy kiírja a szerkesztett dokumentumot kinyomtatni.

A File menüből az alkalmazás tartalmazza a három vonal (Nyomtatás, Nyomtatási kép és nyomtatás beállítás), amely szabályozza a folyamatot nyomtatás készített dokumentumok az alkalmazás. Dokumentum nyomtatásához, csak válassza ki a Fájl menü Nyomtatás sort. Nyomtatás párbeszédablak jelenik meg a képernyőn. Lehetőség van, hogy kiválassza a nyomtatási eszközt nyomtatott dokumentumok (csoport neve), azt mutatják, kiírja a teljes dokumentumot, vagy annak egy részét (a csoport Nyomtatási tartomány), valamint, hogy hány példányban a dokumentum nyomtatása (Group példányban). Azt is beállíthatja, különböző jellemzőit a nyomtató készüléket, ha rákattint a Tulajdonságok gombra a nyomtató-csoport.

Ha azt szeretnénk, hogy meghatározza csak a nyomtatási eszköz és a formátumot a dokumentum, a Fájl menüből válassza ki a Nyomtató beállítása vezeték. A nyomtató-csoport, megadhatja a nyomtatási eszköz és állítsa be megfelelően. Paper Group beállítja a papír méretét és adagolás módban a nyomtató. Orientation csoport magában csak egy kapcsoló, amely meghatározza a papír tájolásának. Beletelik egy függőlegesen álló tájolás kép papíron (üzemmód „portré”) vagy a Fekvő tájolást vízszintes izoborazheniya papír ( „táj” módban).

Ha nem kell elvégezni specifikus feldolgozását a dokumentum a nyomtatás előtt, nem valószínű, hogy szükség lesz arra, hogy külön programkódot felelős a nyomtatási folyamatot. Csak vegye figyelembe, hogy az eljárás létrehozását panelek kapcsolódó dokumentum nyomtatásához, nem különbözik a létrehozását a fent leírt szabványos párbeszéd panel.

6. Panel elvégzésére keresés és csere (CFindReplaceDialog osztály)

CFindReplaceDialog osztály célja, hogy ellenőrizzék párbeszédpanelek Keresés és csere. Keresés párbeszédablak használják keresni ismert húrok a dokumentumban alkalmazás és csere panel lehetővé teszi cseréje egy sor másik.

Fontos különbséget a párbeszédablak Keresés és csere párbeszédpanel a többi hagyományos panelekhez, hogy ők nem-modális párbeszédpanelek. Ezért a folyamat létrehozásának ezek a panelek jelentősen eltér létrehozásának folyamatát egy szabványos panelek színválasztás, font és a fájl nevét.