- jogcímcsoport
- 06/30/2021
- 9 perc olvasni
-
- j
- c
- D
- m
- m
ez a témakör ismerteti, hogyan konfigurálhatja az alkalmazást úgy, hogy a közös vezérlők a felhasználó által preferált vizuális stílusban jelenjenek meg.
ez a témakör a következő szakaszokat tartalmazza.
- manifesztek vagy Irányelvek használata annak biztosítására, hogy a vizuális stílusok alkalmazhatók legyenek az
- alkalmazásokhoz a ComCtl32 használatával.dll 6-os verzió egy olyan alkalmazásban, amely csak szabványos kiterjesztéseket használ
- a Comctl32 6-os verzióját használja a Vezérlőpulton vagy a Rundll32 által futtatott DLL-t.exe
- vizuális stílus támogatás hozzáadása bővítményhez, bővítményhez, MMC beépülő modulhoz vagy folyamatba bevitt DLL-hez
- a vizuális stílusok kikapcsolása
- a vizuális stílusok használata HTML tartalommal
- ha a vizuális stílusokat nem alkalmazzák
- az alkalmazás kompatibilissé tétele a Windows korábbi verzióival
- kapcsolódó témák
- manifesztek vagy Irányelvek használata annak biztosítása érdekében, hogy a vizuális stílusok alkalmazhatóak legyenek
- A ComCtl32 Használatával.dll 6-os verzió egy olyan alkalmazásban, amely csak szabványos kiterjesztéseket használ
- a ComCtl32 6-os verziójának használata a Vezérlőpulton vagy a Rundll32 által futtatott DLL.exe
- vizuális stílus támogatás hozzáadása bővítményhez, bővítményhez, MMC beépülő modulhoz vagy folyamatba bevitt DLL-hez
- a vizuális stílusok kikapcsolása
- HTML tartalmú vizuális stílusok használata
- ha a vizuális stílusokat nem alkalmazza
- az alkalmazás kompatibilitása A Windows korábbi verzióival
manifesztek vagy Irányelvek használata annak biztosítása érdekében, hogy a vizuális stílusok alkalmazhatóak legyenek
az alkalmazás vizuális stílusok használatának engedélyezéséhez a Comctl32-t kell használnia.dll verzió 6 vagy újabb. Mivel a 6-os verzió nem terjeszthető, csak akkor érhető el, ha az alkalmazás a Windows olyan verzióján fut, amely tartalmazza. A Windows mind az 5-ös, mind a 6-os verzióval szállít. ComCtl32.a dll 6-os verziója mind a felhasználói vezérlőket, mind a közös vezérlőket tartalmazza. Alapértelmezés szerint az alkalmazások a User32-ben meghatározott felhasználói vezérlőket használják.dll és a ComCtl32-ben meghatározott közös vezérlők.dll verzió 5. A DLL-verziók és azok terjesztési platformjainak listáját lásd: közös Vezérlőverziók.
ha azt szeretné, hogy az alkalmazás vizuális stílusokat használjon, hozzá kell adnia egy alkalmazásjegyzéket vagy fordítóprogramot, amely jelzi, hogy a ComCtl32.dll verzió 6 kell használni, ha rendelkezésre áll.
az application manifest lehetővé teszi az alkalmazás számára, hogy meghatározza a szerelvény mely verzióit. A Microsoft Win32-ben az assembly a DLL-ek halmaza, valamint a Dll-ekben található verzióképes objektumok listája.
a manifesztek XML-ben vannak írva. Az alkalmazás manifest fájljának neve a futtatható fájl neve, amelyet a fájlnévkiterjesztés követ .manifest; például a MyApp.exe.jegyzék. A következő jegyzékminta azt mutatja, hogy az első szakasz magát a jegyzéket írja le. Az alábbi táblázat az assemblyidentity elem által a manifest description szakaszban beállított attribútumokat mutatja be.
attribútum | leírás |
---|---|
version | változata a manifest. A verziónak major formában kell lennie.kisebb.felülvizsgálat.épít (azaz n.n.n. n, ahol n < =65535). |
processorArchitecture | processzor, amelyhez az alkalmazást fejlesztették ki. |
név | tartalmazza a vállalat nevét, a termék nevét és az alkalmazás nevét. |
írja be az alkalmazás | típusát, például Win32. |
a minta jegyzék az alkalmazás leírását is tartalmazza, és meghatározza az alkalmazásfüggőségeket. Az alábbi táblázat az assemblyidentity elem által a függőség szakaszban beállított attribútumokat mutatja.
attribútum | leírás |
---|---|
típus | a függőségi összetevő típusa, például Win32. |
név | az összetevő neve. |
verzió | az összetevő verziója. |
processzorarchitektúra | processzor, amelyhez az összetevőt tervezték. |
publicKeyToken | ezzel az összetevővel használt kulcs token. |
nyelv | az összetevő nyelve. |
az alábbiakban egy példa egy manifest fájlra.
fontos
állítsa a processorArchitecture bejegyzést “X86” értékre, ha az alkalmazás a 32 bites Windows platformot célozza meg, vagy “amd64″ értékre, ha az alkalmazás a 64 bites Windows platformot célozza meg. Megadhatja a ” * ” értéket is, amely biztosítja, hogy minden platform célzott legyen, amint az a következő példákban látható.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32"/><description>Your application description here.</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly></dependency></assembly>
Ha Microsoft Visual C++ 2005 vagy újabb verziót használ, a manifest manuális létrehozása helyett hozzáadhatja a következő fordítói irányelvet a forráskódhoz. Az olvashatóság érdekében az irányelv itt több sorra oszlik.
#pragma comment(linker,"\"/manifestdependency:type='win32' \name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
az alábbi témakörök ismertetik a vizuális stílusok különböző típusú alkalmazásokra történő alkalmazásának lépéseit. Vegye figyelembe, hogy a manifest formátum minden esetben azonos.
A ComCtl32 Használatával.dll 6-os verzió egy olyan alkalmazásban, amely csak szabványos kiterjesztéseket használ
az alábbi példák olyan alkalmazásokra vonatkoznak, amelyek nem használnak harmadik féltől származó kiterjesztéseket.
- számológép
- admirális (Windows Vista és Windows 7 esetén)
- Aknakereső (Windows Vista és Windows 7 esetén)
- Jegyzettömb
- pasziánsz (Windows Vista és Windows rendszerben) 7)
jegyzék létrehozása és az alkalmazás vizuális stílusok használatának engedélyezése.
-
Link a ComCtl32-hez.lib és hívja be a közös kontrollokat.
-
adjon hozzá egy yourapp nevű fájlt.exe.nyilvánvaló, hogy a forrás fa, amely az XML manifest formátumban.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32"/><description>Your application description here.</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly></dependency></assembly>
-
adja hozzá a jegyzéket az alkalmazás erőforrásfájljához az alábbiak szerint:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"
Megjegyzés:
amikor az előző bejegyzést hozzáadja az erőforráshoz, azt egy sorban kell formáznia. Alternatív megoldásként az XML manifest fájlt ugyanabba a könyvtárba helyezheti, mint az alkalmazás futtatható fájlját. Az operációs rendszer először betölti a jegyzéket a fájlrendszerből, majd ellenőrizze a futtatható fájl erőforrás szakaszát. A fájlrendszer verziója elsőbbséget élvez.
az alkalmazás elkészítésekor a manifest bináris erőforrásként kerül hozzáadásra.
a ComCtl32 6-os verziójának használata a Vezérlőpulton vagy a Rundll32 által futtatott DLL.exe
jegyzék létrehozása és az alkalmazás vizuális stílusok használatának engedélyezése.
-
Link a ComCtl32-hez.lib és hívja be a közös kontrollokat.
-
adjon hozzá egy yourapp nevű fájlt.cpl. manifest az XML manifest formátumú forrásfához.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32"/><description>Your application description here.</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly></dependency></assembly>
-
adja hozzá a jegyzéket az alkalmazás erőforrásfájljához 123-as erőforrásazonosítóként.
Megjegyzés:
amikor létrehoz egy Vezérlőpult alkalmazást, helyezze azt a megfelelő kategóriába. Vezérlőpult most már támogatja kategorizálása Vezérlőpult alkalmazások. Ez azt jelenti, hogy a Vezérlőpult-alkalmazások azonosítókat rendelhetnek hozzá, és tevékenységterületekre oszthatók, például Programok hozzáadása vagy eltávolítása, megjelenés és témák, Dátum, Idő, nyelv és Regionális beállítások.
vizuális stílus támogatás hozzáadása bővítményhez, bővítményhez, MMC beépülő modulhoz vagy folyamatba bevitt DLL-hez
a vizuális stílusok támogatása bővítményhez, beépülő modulhoz, MMC beépülő modulhoz vagy folyamatba bevitt DLL-hez adható. Az alábbi lépésekkel például hozzáadhatja a Microsoft Management Console (MMC) beépülő modulhoz a visual styles támogatást.
-
fordítsa le a beépülő modult a-DISOLATION_AWARE_ENABLED jelzővel, vagy illessze be a következő utasítást Az #include “windows elé.h ” nyilatkozat.
#define ISOLATION_AWARE_ENABLED 1
az ISOLATION_AWARE_ENABLED programmal kapcsolatos további információkért lásd: alkatrészek leválasztása.
-
tartalmazza a common control header fájlt a beépülő modul forrásába.
#include <commctrl.h>
-
adjon hozzá egy yourapp nevű fájlt.nyilvánvaló a forrásfához, amely az XML manifest formátumot használja.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32"/><description>Your application description here.</description><dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly></dependency></assembly>
-
adja hozzá a jegyzéket a beépülő modul erőforrásfájljához. Lásd: a ComCtl32 6-os verziójának használata kiterjesztéseket, bővítményeket vagy egy folyamatba bevitt DLL-t használó alkalmazásban a manifeszt erőforrás-fájlhoz történő hozzáadásának részleteiről.
a vizuális stílusok kikapcsolása
a setwindowtheme függvény meghívásával kikapcsolhatja a vizuális stílusokat egy vezérlő vagy egy ablak összes vezérlője számára az alábbiak szerint:
SetWindowTheme(hwnd, L" ", L" ");
az előző példában a hwnd az ablak fogantyúja, amelyben letilthatja a vizuális stílusokat. A hívás után a vezérlés vizuális stílusok nélkül jelenik meg.
HTML tartalmú vizuális stílusok használata
a CSS (Cascading Style Sheets) tulajdonságait, például a hátteret vagy a szegélyt módosító HTML-oldalak nem rendelkeznek vizuális stílusokkal. Megjelenítik a megadott CSS attribútumot. Ha a tartalom részeként van megadva, a legtöbb CSS tulajdonság olyan elemekre vonatkozik, amelyek vizuális stílusokat alkalmaznak.
alapértelmezés szerint a vizuális stílusok a Microsoft Internet Explorer 6 és újabb verzióiban megjelenített oldalak belső HTML-vezérlőire vonatkoznak. A HTML-oldal vizuális stílusainak kikapcsolásához adjon hozzá egy metacímkét a
szakaszhoz. Ez a technika a HTML-alkalmazásokként (HTAs) csomagolt tartalomra is vonatkozik. A vizuális stílusok kikapcsolásához a METACÍMKÉNEK a következőnek kell lennie:
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="no">
Megjegyzés
ha a böngésző és a címke beállításai nem egyeznek meg, az oldal nem alkalmazza a vizuális stílusokat. Ha például a metacímke “nem” – re van állítva, a böngésző pedig a vizuális stílusok engedélyezésére van beállítva, akkor a vizuális stílusok nem kerülnek alkalmazásra az oldalon. Ha azonban a böngésző vagy a metacímke “Igen” – re van állítva, és a másik elem nincs megadva, akkor a vizuális stílusok kerülnek alkalmazásra.
a vizuális stílusok megváltoztathatják a tartalom elrendezését. Továbbá, ha bizonyos attribútumokat állít be a belső HTML-vezérlőkön, például egy gomb szélességét, előfordulhat, hogy a gomb címkéje bizonyos vizuális stílusok alatt olvashatatlan.
alaposan tesztelnie kell a tartalmat a vizuális stílusok használatával annak megállapításához, hogy a vizuális stílusok alkalmazása káros hatással van-e a tartalomra és az elrendezésre.
ha a vizuális stílusokat nem alkalmazza
a vizuális stílusok legfelső szintű ablakra történő alkalmazásának elkerülése érdekében adjon az ablaknak egy nem null régiót (SetWindowRgn). A rendszer feltételezi, hogy egy nem NULL régióval rendelkező ablak egy speciális ablak, amely nem használ vizuális stílusokat. A nem vizuális stílusok legfelső szintű ablakához társított gyermekablak továbbra is alkalmazhat vizuális stílusokat, annak ellenére, hogy a szülőablak nem.
ha le szeretné tiltani a vizuális stílusok használatát az alkalmazás összes ablakában, hívja a SetThemeAppProperties parancsot, és ne adja át a STAP_ALLOW_NONCLIENT jelzőt. Ha egy alkalmazás nem hívja meg a SetThemeAppProperties-t, akkor a feltételezett zászlóértékek a következők: STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS | STAP_ALLOW_WEBCONTENT. A feltételezett értékek miatt a nem Ügyfél terület, a vezérlők és a webtartalom vizuális stílust alkalmaz.
az alkalmazás kompatibilitása A Windows korábbi verzióival
a vizuális stílus architektúrájának nagy részét úgy tervezték, hogy egyszerűvé tegye a termék szállítását a Windows korábbi verzióin, amelyek nem támogatják a vezérlők megjelenésének megváltoztatását. Ha egynél több operációs rendszerhez szállít egy alkalmazást, vegye figyelembe a következőket:
- a Windows 8 előtti verzióiban a vizuális stílusok ki vannak kapcsolva, ha a nagy kontraszt be van kapcsolva. A nagy kontraszt támogatásához a vizuális stílusokat támogató régi alkalmazásoknak külön kódútvonalat kell biztosítaniuk a felhasználói felület elemeinek nagy kontrasztú megfelelő rajzolásához. A Windows 8 rendszerben a nagy kontraszt a vizuális stílusok része; azonban egy Windows 8 alkalmazásnak (amely tartalmazza a Windows 8 GUID-jét az alkalmazásjegyzékének kompatibilitási szakaszában) továbbra is külön kódútvonalat kell megadnia ahhoz, hogy helyesen jelenjen meg nagy kontrasztban a Windows 7 rendszeren.
- ha a ComCtl32 funkcióit használja.a dll 6-os verziója, például a csempe nézet vagy a link vezérlő, akkor kezelnie kell azt az esetet, amikor ezek a vezérlők nem érhetők el a felhasználó számítógépén. ComCtl32.dll verzió 6 nem terjeszthető.
- tesztelje az alkalmazást, hogy megbizonyosodjon arról, hogy nem támaszkodik a ComCtl32 funkcióira.dll verzió 6 anélkül, hogy először ellenőrizné az aktuális verziót.
- ne hivatkozzon az UxTheme-re.lib.
- hibakezelő kód írása olyan esetekhez, amikor a vizuális stílusok nem a várt módon működnek.
- az alkalmazás jegyzékének telepítése a korábbi verziókban nem befolyásolja a vezérlők megjelenítését.
Vizuális Stílusok