povolení vizuálních stylů

  • článek
  • 06/30/2021
  • 9 zápis ke čtení
    • j
    • c
    • D
    • m
    • m
je tato stránka užitečná?

Děkuji.

toto téma vysvětluje, jak nakonfigurovat aplikaci, aby se zajistilo, že se běžné ovládací prvky zobrazují v preferovaném vizuálním stylu uživatele.

toto téma obsahuje následující části.

  • pomocí manifestů nebo směrnic, aby bylo zajištěno, že vizuální styly mohou být použity na aplikace
  • pomocí ComCtl32.dll verze 6 v aplikaci, která používá pouze standardní rozšíření
  • pomocí ComCtl32 verze 6 v Ovládacím panelu nebo DLL, který je spuštěn rundll32.exe
  • přidání podpory vizuálního stylu k rozšíření, Plug-inu, modulu Snap-in MMC nebo DLL, která je přivedena do procesu
  • vypnutí vizuálních stylů
  • pomocí vizuálních stylů s obsahem HTML
  • pokud nejsou použity vizuální styly
  • aby byla vaše aplikace kompatibilní s dřívějšími verzemi systému Windows
  • Související témata

pomocí manifestů nebo směrnic aby bylo zajištěno, že vizuální styly mohou být použity na aplikace

aby vaše aplikace používat vizuální styly, musíte použít comctl32.dll verze 6 nebo novější. Protože verze 6 není Redistribuovatelná, je k dispozici pouze v případě, že vaše aplikace běží na verzi systému Windows, která ji obsahuje. Windows je dodáván s verzí 5 i verzí 6. ComCtl32.dll verze 6 obsahuje jak uživatelské ovládací prvky, tak společné ovládací prvky. Ve výchozím nastavení aplikace používají uživatelské ovládací prvky definované v User32.dll a společné ovládací prvky definované v ComCtl32.dll verze 5. Seznam verzí DLL a jejich distribučních platforem naleznete v části běžné řídicí verze.

pokud chcete, aby vaše aplikace používala vizuální styly, musíte přidat manifest aplikace nebo direktivu kompilátoru, která označuje, že ComCtl32.dll verze 6 by měla být použita, pokud je k dispozici.

manifest aplikace umožňuje aplikaci určit, které Verze sestavy vyžaduje. V Microsoft Win32 je sestava sada knihoven DLL a seznam verzovatelných objektů, které jsou obsaženy v těchto knihovnách DLL.

Manifesty jsou zapsány v XML. Název souboru manifestu aplikace je název spustitelného souboru následovaný příponou názvu souboru .projevovat; například MyApp.exe.projevovat. Následující ukázkový manifest ukazuje, že první část popisuje samotný manifest. Následující tabulka ukazuje atributy nastavené prvkem assemblyIdentity v části Popis manifestu.

atribut popis
verze verze manifestu. Verze musí být ve formě major.nezletilý.revize.n. n. n. N, kde n <=65535).
processorArchitecture procesor, pro který je vaše aplikace vyvinuta.
název zahrnuje název společnosti, Název produktu a název aplikace.
zadejte Typ vaší aplikace, například Win32.

ukázkový manifest také obsahuje popis vaší aplikace a specifikuje závislosti aplikací. Následující tabulka ukazuje atributy nastavené prvkem assemblyIdentity v sekci závislost.

atribut popis
Typ Typ komponenty závislosti, například Win32.
název název komponenty.
verze verze komponenty.
processorArchitecture procesor, pro který je komponenta určena.
publicKeyToken klíčový token používaný s touto komponentou.
jazyk jazyk komponenty.

následuje příklad souboru manifestu.

důležité

nastavte položku processorArchitecture na „X86“, pokud vaše aplikace cílí na 32bitovou platformu Windows, nebo na „amd64“, pokud vaše aplikace cílí na 64bitovou platformu Windows. Můžete také zadat „*“, což zajišťuje cílení všech platforem, jak je uvedeno v následujících příkladech.

<?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>

pokud používáte Microsoft Visual C++ 2005 nebo novější, můžete do zdrojového kódu přidat následující direktivu kompilátoru místo ručního vytváření manifestu. Pro čitelnost je zde směrnice rozdělena do několika řádků.

#pragma comment(linker,"\"/manifestdependency:type='win32' \name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

následující témata popisují kroky pro aplikaci vizuálních stylů na různé typy aplikací. Všimněte si, že formát manifestu je v každém případě stejný.

Pomocí ComCtl32.dll verze 6 v aplikaci, která používá pouze standardní rozšíření

níže jsou uvedeny příklady aplikací, které nepoužívají rozšíření třetích stran.

  • kalkulačka
  • FreeCell (ve Windows Vista a Windows 7)
  • Hledání min (ve Windows Vista a Windows 7)
  • Poznámkový blok
  • Solitaire (ve Windows Vista a Windows 7)

Chcete-li vytvořit manifest a umožnit aplikaci používat vizuální styly.

  1. odkaz na ComCtl32.lib a volejte InitCommonControls.

  2. přidejte soubor s názvem YourApp.exe.manifest do zdrojového stromu, který má formát manifestu XML.

    <?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>
  3. přidejte manifest do souboru prostředků vaší aplikace následujícím způsobem:

    CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"

    Poznámka

    když přidáte předchozí položku do zdroje, musíte ji naformátovat na jednom řádku. Případně můžete umístit soubor manifestu XML do stejného adresáře jako spustitelný soubor vaší aplikace. Operační systém nejprve načte manifest ze systému souborů a poté zkontrolujte část zdroje spustitelného souboru. Verze systému souborů má přednost.

při vytváření aplikace bude manifest přidán jako binární zdroj.

pomocí ComCtl32 verze 6 v Ovládacím panelu nebo DLL, který je spuštěn rundll32.exe

Chcete-li vytvořit manifest a umožnit aplikaci používat vizuální styly.

  1. odkaz na ComCtl32.lib a volejte InitCommonControls.

  2. přidejte soubor s názvem YourApp.cpl. manifest do zdrojového stromu, který má formát manifestu XML.

    <?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>
  3. přidejte manifest do souboru prostředků vaší aplikace jako ID zdroje 123.

Poznámka

když vytváříte aplikaci ovládacího panelu, umístěte ji do příslušné kategorie. Ovládací Panel nyní podporuje kategorizaci aplikací ovládacího panelu. To znamená, že aplikacím ovládacího panelu lze přiřadit identifikátory a rozdělit je do oblastí úkolů, jako je přidání nebo odebrání programů, vzhled a motivy nebo datum, čas, Jazyk a regionální Možnosti.

přidání podpory vizuálního stylu do rozšíření, Plug-in, MMC Snap-in nebo DLL, která je přivedena do procesu

podpora vizuálních stylů může být přidána do rozšíření, plug-in, MMC snap-in nebo DLL, která je přivedena do procesu. Například pomocí následujících kroků přidejte podporu vizuálních stylů pro modul snap-in Microsoft Management Console (MMC).

  1. zkompilujte modul snap – in pomocí příznaku-DISOLATION_AWARE_ENABLED nebo vložte následující příkaz před # include „windows.h “ prohlášení.

    #define ISOLATION_AWARE_ENABLED 1

    další informace o ISOLATION_AWARE_ENABLED naleznete v části izolační komponenty.

  2. zahrňte společný soubor záhlaví řízení do zdroje modulu snap-in.

    #include <commctrl.h>
  3. přidejte soubor s názvem YourApp.manifest do zdrojového stromu, který používá formát manifestu XML.

    <?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>
  4. přidejte manifest do souboru prostředků modulu snap-in. Viz Použití ComCtl32 verze 6 v aplikaci, která používá rozšíření, Plug-iny, nebo DLL, který je uveden do procesu pro podrobnosti o přidání manifestu do souboru prostředků.

vypnutí vizuálních stylů

vizuální styly pro ovládací prvek nebo pro všechny ovládací prvky v okně můžete vypnout voláním funkce SetWindowTheme následujícím způsobem:

SetWindowTheme(hwnd, L" ", L" ");

v předchozím příkladu je hwnd popisovač okna, ve kterém lze zakázat vizuální styly. Po volání se ovládací prvek vykreslí bez vizuálních stylů.

použití vizuálních stylů s obsahem HTML

HTML stránky, které upravují vlastnosti kaskádových stylů (CSS), jako je pozadí nebo ohraničení, nemají na ně aplikované vizuální styly. Zobrazují zadaný atribut CSS. Je-li specifikován jako součást obsahu, většina vlastností CSS se vztahuje na prvky, které mají použité vizuální styly.

ve výchozím nastavení jsou vizuální styly aplikovány na vnitřní ovládací prvky HTML na stránkách zobrazených v aplikaci Microsoft Internet Explorer 6 a novějších verzích. Chcete-li vypnout vizuální styly pro stránku HTML, přidejte metaznačku do sekce

. Tato technika platí také pro obsah zabalený jako HTML aplikace (HTAs). Chcete – li vypnout vizuální styly, musí být metaznačka následující:

<META HTTP-EQUIV="MSThemeCompatible" CONTENT="no">

Poznámka

pokud nastavení prohlížeče a nastavení značky nesouhlasí, stránka nebude používat vizuální styly. Pokud je například META tag nastaven na „ne“ a prohlížeč je nastaven na povolení vizuálních stylů, vizuální styly se na stránku nepoužijí. Pokud je však prohlížeč nebo metaznačka nastavena na “ Ano “ a druhá položka není zadána, použijí se vizuální styly.

vizuální styly mohou změnit rozvržení vašeho obsahu. Také, pokud nastavíte určité atributy na vnitřních ovládacích prvcích HTML, jako je šířka tlačítka, možná zjistíte, že štítek na tlačítku je v určitých vizuálních stylech nečitelný.

obsah musíte důkladně otestovat pomocí vizuálních stylů, abyste zjistili, zda použití vizuálních stylů má nepříznivý vliv na váš obsah a rozvržení.

pokud nejsou použity vizuální styly

Chcete-li se vyhnout použití vizuálních stylů na okno nejvyšší úrovně, dejte oknu nenulovou oblast (SetWindowRgn). Systém předpokládá, že okno s nenulovou oblastí je specializované okno, které nepoužívá vizuální styly. Podřízené okno spojené s oknem nejvyšší úrovně bez vizuálních stylů může stále používat vizuální styly, i když nadřazené okno ne.

pokud chcete zakázat používání vizuálních stylů pro všechna okna ve vaší aplikaci, Zavolejte Setthemeapproperties a neprojděte příznak STAP_ALLOW_NONCLIENT. Pokud aplikace nevolá Setthemeapproperties, předpokládané hodnoty příznaku jsou STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS | STAP_ALLOW_WEBCONTENT. Předpokládané hodnoty způsobují, že neklientská oblast, ovládací prvky a webový obsah mají vizuální styl.

aby byla vaše aplikace kompatibilní s dřívějšími verzemi systému Windows

většina architektury vizuálního stylu je navržena tak, aby usnadňovala pokračování v odesílání produktu na dřívější verze systému Windows, které nepodporují změnu vzhledu ovládacích prvků. Při odesílání aplikace pro více než jeden operační systém mějte na paměti následující:

  • ve verzích systému Windows před systémem Windows 8 jsou vizuální styly vypnuty, když je zapnutý vysoký kontrast. Chcete-li podpořit vysoký kontrast, starší aplikace, která podporuje vizuální styly, musí poskytnout samostatnou cestu kódu, aby správně nakreslila prvky uživatelského rozhraní ve vysokém kontrastu. V systému Windows 8, vysoký kontrast je součástí vizuálních stylů; nicméně, aplikace Windows 8 (ten, který obsahuje Windows 8 GUID v části kompatibility jeho aplikace manifestu) stále musí poskytnout samostatnou cestu kódu správně vykreslit ve vysokém kontrastu na Windows 7 dříve.
  • pokud používáte funkce v ComCtl32.dll verze 6, jako je zobrazení dlaždic nebo ovládání odkazů, musíte zvládnout případ, kdy tyto ovládací prvky nejsou k dispozici v počítači uživatele. ComCtl32.dll verze 6 není Redistribuovatelná.
  • Otestujte svou aplikaci, abyste se ujistili, že se nespoléháte na funkce ComCtl32.dll verze 6 bez předchozí kontroly aktuální verze.
  • nepřipojujte se k UxTheme.LIBA.
  • napište kód pro zpracování chyb pro případy, kdy vizuální styly nefungují podle očekávání.
  • instalace manifestu aplikace v dřívějších verzích nebude mít vliv na Vykreslování ovládacích prvků.

Vizuální Styly

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.