aktivering af visuelle stilarter

  • artikel
  • 06/30/2021
  • 9 minutter at læse
    • j
    • c
    • D
    • m
    • m
er denne side nyttig?

Tak.

dette emne forklarer, hvordan du konfigurerer din applikation for at sikre, at almindelige kontroller vises i brugerens foretrukne visuelle stil.

dette emne indeholder følgende afsnit.

  • brug af manifester eller direktiver for at sikre, at visuelle stilarter kan anvendes på applikationer
  • brug af ComCtl32.DLL Version 6 i et program, der kun bruger Standardudvidelser
  • ved hjælp af ComCtl32 Version 6 i Kontrolpanel eller en DLL, der køres af RunDll32.eks
  • tilføjelse af visuel Stilstøtte til en udvidelse, Plug-in, MMC Snap-in eller en DLL, der bringes i en proces
  • slukning af visuelle stilarter
  • brug af visuelle stilarter med HTML-indhold
  • når visuelle stilarter ikke anvendes
  • gør din applikation kompatibel med tidligere versioner af vinduer
  • relaterede emner

brug af manifester eller direktiver for at sikre, at visuelle stilarter kan anvendes på applikationer

for at gøre det muligt for din applikation at bruge visuelle stilarter skal du bruge comctl32.dll version 6 eller nyere. DA version 6 ikke kan omfordeles, er den kun tilgængelig, når din applikation kører på en version af vinduer, der indeholder den. Vinduer leveres med både version 5 og version 6. ComCtl32.DLL version 6 indeholder både brugerkontrollerne og de fælles kontroller. Som standard bruger applikationer de brugerkontroller, der er defineret i User32.dll og de fælles kontroller, der er defineret i ComCtl32.dll version 5. For en liste over DLL-versioner og deres distributionsplatforme, se almindelige Kontrolversioner.

hvis du vil have din ansøgning til at bruge visuelle stilarter, skal du tilføje et program manifest eller compiler direktiv, der angiver, at ComCtl32.DLL version 6 skal bruges, hvis den er tilgængelig.

et programmanifest gør det muligt for et program at specificere, hvilke versioner af en samling det kræver. I Microsoft 32 er en samling et sæt DLL ‘er og en liste over versionerbare objekter, der er indeholdt i disse DLL’ er.

manifester er skrevet i KML. Navnet på Application manifest-filen er navnet på din eksekverbare efterfulgt af filtypenavnet .manifestere; for eksempel MyApp.eks.manifestere. Følgende prøvemanifest viser, at det første afsnit beskriver selve manifestet. Følgende tabel viser de attributter, der er angivet af assemblyIdentity-elementet i afsnittet manifest beskrivelse.

attribut beskrivelse
version version af manifestet. Versionen skal være i form major.mindre.revision.Byg (det vil sige n.n.n.n, hvor n <=65535).
processorarkitektur Processor, som din applikation er udviklet til.
navn inkluderer firmanavn, produktnavn og ansøgningsnavn.
skriv type af din ansøgning, f.eks.

prøven manifest giver også en beskrivelse af din ansøgning og angiver ansøgning afhængigheder. Følgende tabel viser de attributter, der er angivet af elementet assemblyIdentity i afsnittet afhængighed.

attribut beskrivelse
type type af afhængighedskomponenten, f.eks.
navn komponentens navn.
version version af komponenten.
processorarkitektur Processor, som komponenten er designet til.
publicKeyToken nøgle token bruges med denne komponent.
sprog komponentens sprog.

Følgende er et eksempel på en manifest-fil.

vigtigt

Indstil processorarkitekturindgangen til “H86”, hvis din applikation er målrettet mod 32 bit vinduer-platformen, eller til “amd64”, hvis din applikation er målrettet mod 64 bit vinduer-platformen. Du kan også angive “*”, som sikrer, at alle platforme er målrettet, som vist i de følgende eksempler.

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

hvis du bruger Microsoft Visual C++ 2005 eller nyere, kan du tilføje følgende compiler-direktiv til din kildekode i stedet for manuelt at oprette et manifest. For læsbarhed er direktivet opdelt i flere linjer her.

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

følgende emner beskriver trinene til anvendelse af visuelle stilarter til forskellige typer applikationer. Bemærk, at manifestformatet er det samme i hvert tilfælde.

Brug Af ComCtl32.DLL Version 6 i et program, der kun bruger Standardudvidelser

følgende er eksempler på applikationer, der ikke bruger tredjepartsudvidelser.

  • Lommeregner
  • FreeCell (i Vinduer Vista og Vinduer 7)
  • Minestryger (i Vinduer Vista og Vinduer 7)
  • Notepad
  • Solitaire (i Vinduer Vista og Vinduer 7) 7)

for at oprette et manifest og gøre det muligt for din applikation at bruge visuelle stilarter.

  1. Link til ComCtl32.lib og ring InitCommonControls.

  2. Tilføj en fil kaldet YourApp.eks.manifest til dit kildetræ, der har formatet.

    <?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. Føj manifestet til din applikations ressourcefil som følger:

    CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"

    Bemærk

    når du tilføjer den forrige post til ressourcen, skal du formatere den på en linje. Alternativt kan du placere manifestfilen i samme mappe som programmets eksekverbare fil. Operativsystemet indlæser manifestet fra filsystemet først, og kontroller derefter ressourcesektionen i den eksekverbare. Filsystemversionen har forrang.

når du bygger din applikation, tilføjes manifestet som en binær ressource.

brug af ComCtl32 Version 6 i Kontrolpanel eller en DLL, der køres af RunDll32.for at oprette et manifest og aktivere din applikation til at bruge visuelle stilarter.

  1. Link til ComCtl32.lib og ring InitCommonControls.

  2. Tilføj en fil kaldet YourApp.cpl. manifest til dit kildetræ, der har formatet.

    <?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. Føj manifestet til din applikations ressourcefil som ressource-ID 123.

Bemærk

når du opretter et kontrolpanel, skal du placere det i den relevante kategori. Kontrolpanel understøtter nu kategorisering af Kontrolpanel applikationer. Dette betyder, at Kontrolpanelapplikationer kan tildeles identifikatorer og adskilles i opgaveområder som tilføje eller fjerne programmer, udseende og temaer eller dato, klokkeslæt, sprog og Regionale indstillinger.

tilføjelse af understøttelse af visuel stil til en udvidelse, Plug-in, MMC Snap-in eller en DLL, der bringes i en proces

understøttelse af visuelle stilarter kan føjes til en udvidelse, plug-in, MMC snap-in eller en DLL, der bringes i en proces. Du kan f.eks. bruge følgende trin til at tilføje understøttelse af visuelle formater til en snap-in (MMC) i Microsoft Management Console.

  1. kompilere din snap – in med-DISOLATION_AVARE_ENABLED flag eller indsætte følgende sætning før #include “vinduer.h ” erklæring.

    #define ISOLATION_AWARE_ENABLED 1

    du kan finde flere oplysninger om ISOLERING_AKTIVERET, Isoleringskomponenter.

  2. Medtag den fælles kontrol header fil i din snap-in kilde.

    #include <commctrl.h>
  3. Tilføj en fil kaldet YourApp.manifest til dit kildetræ, der bruger formatet.

    <?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. Føj manifestet til din snap-ins ressourcefil. Se Brug af ComCtl32 Version 6 i et program, der bruger udvidelser, Plug-ins eller en DLL, der bringes i en proces for detaljer om tilføjelse af et manifest til en ressourcefil.

slukning af visuelle typografier

du kan slå visuelle typografier fra for et kontrolelement eller for alle kontrolelementer i et vindue ved at kalde funktionen Setvinduetema som følger:

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

i det foregående eksempel er hvnd håndtaget i vinduet, hvor du kan deaktivere visuelle stilarter. Efter opkaldet gengives kontrollen uden visuelle stilarter.

brug af visuelle stilarter med HTML-indhold

HTML-sider, der ændrer egenskaberne Cascading Style Sheets (CSS) som baggrund eller kant, har ikke visuelle stilarter anvendt på dem. De viser den angivne CSS-attribut. Når de er angivet som en del af indholdet, gælder de fleste CSS-egenskaber for elementer, der har visuelle stilarter anvendt.

som standard anvendes visuelle stilarter på iboende HTML-kontroller på sider, der vises i Microsoft Internet Stifinder 6 og nyere versioner. Hvis du vil deaktivere visuelle typografier for en HTML-side, skal du tilføje et metatag til afsnittet

. Denne teknik gælder også for indhold pakket som HTML-applikationer (MTV ‘ er). For at slukke for visuelle stilarter skal metatagget være som følger:

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

Bemærk

hvis bro.serindstillingen og tagindstillingen ikke er enige, anvender siden ikke visuelle stilarter. For eksempel, hvis metatagget er indstillet til “nej”, og bro.sereren er indstillet til at aktivere visuelle stilarter, anvendes visuelle stilarter ikke på siden. Men hvis enten bro.ser eller metatag er indstillet til “ja”, og det andet element ikke er angivet, anvendes visuelle stilarter.

visuelle stilarter kan ændre layoutet af dit indhold. Hvis du også angiver bestemte attributter på iboende HTML-kontroller, såsom bredden på en knap, kan du opleve, at etiketten på knappen er ulæselig under visse visuelle stilarter.

du skal grundigt teste dit indhold ved hjælp af visuelle stilarter for at afgøre, om anvendelse af visuelle stilarter har en negativ indvirkning på dit indhold og layout.

når visuelle typografier ikke anvendes

hvis du vil undgå at anvende visuelle typografier på et vindue på øverste niveau, skal du give vinduet et område, der ikke er null (Indstil Vinduesrgn). Systemet antager, at et vindue med en ikke-nul-region er et specialiseret vindue, der ikke bruger visuelle stilarter. Et underordnet vindue, der er knyttet til et vindue på øverste niveau, der ikke er visuelt, kan stadig anvende visuelle stilarter, selvom det overordnede vindue ikke gør det.

hvis du vil deaktivere brugen af visuelle stilarter for alle vinduer i din applikation, skal du ringe til SetThemeAppProperties og ikke passere STAP_TILLAD_NONCLIENT flag. Hvis et program ikke kalder SetThemeAppProperties, er de antagne flagværdier STAP_TILLAD_NONCLIENT | STAP_TILLAD_CONTROLS / STAP_TILLAD_INDHOLD. De antagne værdier får det ikke-kliente område, kontrolelementerne og internetindholdet til at anvende en visuel stil.

gør din applikation kompatibel med tidligere versioner af vinduer

meget af den visuelle stilarkitektur er designet til at gøre det nemt at fortsætte med at sende dit produkt på tidligere versioner af vinduer, der ikke understøtter ændring af udseendet af kontroller. Når du sender en applikation til mere end et operativsystem, skal du være opmærksom på følgende:

  • i versioner af vinduer før Vinduer 8 er visuelle stilarter slukket, når høj kontrast er tændt. For at understøtte høj kontrast skal et ældre program, der understøtter visuelle stilarter, give en separat kodesti for korrekt at tegne UI-elementer i høj kontrast. I Vinduer 8 er høj kontrast en del af visuelle stilarter; en Vinduer 8-applikation (en, der inkluderer Vinduer 8 GUID i kompatibilitetsafsnittet i dets applikationsmanifest) skal dog stadig give en separat kodesti for at gengive korrekt i høj kontrast på Vinduer 7 En tidligere.
  • hvis du bruger funktionerne i ComCtl32.DLL-version 6, f.eks. flisevisningen eller linkkontrollen, skal du håndtere det tilfælde, hvor disse kontroller ikke er tilgængelige på din brugers computer. ComCtl32.DLL version 6 kan ikke omfordeles.
  • Test din ansøgning for at sikre, at du ikke stoler på funktioner i ComCtl32.dll version 6 uden først at kontrollere for den aktuelle version.
  • link ikke til tekst.lib.
  • skriv fejlhåndteringskode for tilfælde, hvor visuelle stilarter ikke fungerer som forventet.
  • installation af programmets manifest i tidligere versioner påvirker ikke gengivelsen af kontroller.

Visuelle Stilarter

Write a Comment

Din e-mailadresse vil ikke blive publiceret.