- Artikkel
- 06/30/2021
- 9 minutter å lese
-
- j
- c
- D
- m
- m
Dette emnet forklarer hvordan du konfigurerer programmet for å sikre at vanlige kontroller vises i brukerens foretrukne visuelle stil.
dette emnet inneholder følgende deler.
- Bruke Manifester eller Direktiver For Å Sikre At Visuelle Stiler Kan Brukes På Programmer
- Ved Hjelp Av ComCtl32.dll Versjon 6 I Et Program Som Bare Bruker Standardutvidelser
- Ved Hjelp Av ComCtl32 Versjon 6 I Kontrollpanel ELLER EN DLL Som Kjøres Av RunDll32.exe
- Legge Til Støtte For Visuell Stil I En Utvidelse, Plugin, Mmc-snapin-modul eller EN DLL Som Er Brakt inn I En Prosess
- Slå Av Visuelle Stiler
- Ved Hjelp Av Visuelle Stiler med HTML-Innhold
- Når Visuelle Stiler Ikke Brukes
- Gjør Programmet Kompatibelt Med Tidligere Versjoner Av Windows
- Beslektede emner
- Bruke Manifester eller Direktiver for å sikre AT VISUELLE Stiler kan brukes PÅ PROGRAMMER
- Bruke ComCtl32.dll Versjon 6 i Et Program Som Bare Bruker Standardutvidelser
- Bruke ComCtl32 Versjon 6 I Kontrollpanel ELLER EN DLL Som Kjøres Av RunDll32.exe
- Legge Visuell Stil Støtte Til En Utvidelse, Plug-in, MMC Snap-in eller EN DLL Som Er Brakt inn I En Prosess
- Slå Av Visuelle Stiler
- Bruk Av Visuelle Stiler med HTML-Innhold
- Når Visuelle Stiler Ikke Brukes
- Å Gjøre Programmet Kompatibelt Med Tidligere Versjoner Av Windows
Bruke Manifester eller Direktiver for å sikre AT VISUELLE Stiler kan brukes PÅ PROGRAMMER
Hvis Du Vil Aktivere Programmet Til Å Bruke Visuelle Stiler, Må Du Bruke Comctl32.dll versjon 6 eller nyere. Siden versjon 6 ikke kan distribueres på nytt, er den bare tilgjengelig når programmet kjører På en versjon Av Windows som inneholder Den. Windows leveres med både versjon 5 og versjon 6. ComCtl32.dll versjon 6 inneholder både brukerkontrollene og de vanlige kontrollene. Programmer bruker som standard brukerkontrollene som er definert i User32.dll og de vanlige kontrollene som er definert I ComCtl32.dll versjon 5. For en liste OVER DLL-versjoner og deres distribusjonsplattformer, se Vanlige Kontrollversjoner.
hvis du vil at programmet skal bruke visuelle stiler, må du legge Til et program manifest eller kompilatoren direktiv som angir At ComCtl32.dll versjon 6 skal brukes hvis den er tilgjengelig.
et programmanifest gjør det mulig for et program å angi hvilke versjoner av en samling det krever. I Microsoft Win32 er en samling et Sett Med Dller og en liste over versjonsbare objekter som finnes i Disse Dllene.
Manifester er skrevet I XML. Navnet på programmet manifest filen er navnet på kjørbar etterfulgt av filtypen .manifestere; For Eksempel, MyApp.exe.manifestere. Følgende eksempelmanifest viser at den første delen beskriver manifestet selv. Tabellen nedenfor viser attributtene som er angitt av assemblyIdentity-elementet i manifest beskrivelse-delen.
Attributt | Beskrivelse |
---|---|
versjon | versjon av manifestet. Versjonen må være i form major.mindreårig.revisjon.bygg (det vil si n. n. n. n, hvor n < =65535). |
processorArchitecture | Prosessor som applikasjonen din er utviklet for. |
navn | Inkluderer firmanavn, produktnavn og applikasjonsnavn. |
type | type program, For Eksempel Win32. |
eksempelmanifestet gir også en beskrivelse av søknaden din og angir programavhengigheter. Tabellen nedenfor viser attributtene som er angitt av assemblyIdentity-elementet i delen avhengighet.
Attributt | Beskrivelse |
---|---|
type | typen avhengighetskomponent, For Eksempel Win32. |
navn | navnet på komponenten. |
versjon | versjon av komponenten. |
processorArchitecture | Prosessor som komponenten er utformet for. |
publicKeyToken | Nøkkel token brukes med denne komponenten. |
språk | språk for komponenten. |
Følgende er et eksempel på en manifest-fil.
Viktig
Sett processorArchitecture-oppføringen til » X86 «hvis programmet er rettet mot 32-biters Windows-plattformen, eller til» amd64 » hvis programmet er rettet mot 64-biters Windows-plattformen. Du kan også angi «*», som sikrer at alle plattformer er målrettet, som vist i eksemplene nedenfor.
<?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 bruker Microsoft Visual C++ 2005 eller nyere, kan du legge til følgende kompilatordirektiv i kildekoden i stedet for å opprette et manifest manuelt. For lesbarhet er direktivet brutt 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 trinnene for å bruke visuelle stiler på ulike typer programmer. Legg merke til at manifestformatet er det samme i hvert tilfelle.
Bruke ComCtl32.dll Versjon 6 i Et Program Som Bare Bruker Standardutvidelser
følgende er eksempler på programmer som ikke bruker tredjepartsutvidelser.
- Kalkulator
- FreeCell (I Windows Vista Og Windows 7)
- Minesveiper (I Windows Vista Og Windows 7)
- Notisblokk
- Solitaire (I Windows Vista Og Windows 7 7)
for å lage et manifest og aktivere programmet til å bruke visuelle stiler.
-
link Til ComCtl32.lib og ring Initcommon Controls.
-
Legg til en fil som heter YourApp.exe.manifest til kildetreet som har XML manifest-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>
-
Legg til manifestet i programmets ressursfil som følger:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"
Obs!
når du legger til forrige oppføring i ressursen, må du formatere den på en linje. Alternativt kan DU plassere XML manifest-filen i samme katalog som programmets kjørbare fil. Operativsystemet vil først laste manifestet fra filsystemet, og deretter sjekke ressursdelen av kjørbar. Filsystemversjonen har forrang.
Når du bygger søknaden din, vil manifestet bli lagt til som en binær ressurs.
Bruke ComCtl32 Versjon 6 I Kontrollpanel ELLER EN DLL Som Kjøres Av RunDll32.exe
for å lage et manifest og aktivere programmet til å bruke visuelle stiler.
-
link Til ComCtl32.lib og ring Initcommon Controls.
-
Legg til en fil som heter YourApp.cpl. manifest til kildetreet som har XML manifest-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>
-
Legg til manifestet i programmets ressursfil som ressurs-ID 123.
Obs!
når du redigerer Et Kontrollpanel-program, plasserer du Det i den aktuelle kategorien. Kontrollpanel støtter nå kategorisering Av Kontrollpanel applikasjoner. Dette betyr At Programmer I Kontrollpanelet kan tilordnes identifikatorer og deles inn i aktivitetsområder Som Legg til Eller Fjern Programmer, Utseende og Temaer, Eller Dato, Klokkeslett, Språk og Regionale Alternativer.
Legge Visuell Stil Støtte Til En Utvidelse, Plug-in, MMC Snap-in eller EN DLL Som Er Brakt inn I En Prosess
Støtte for visuelle stiler kan legges til en utvidelse, plug-in, MMC snap-in, ELLER EN DLL som er brakt inn i en prosess. Bruk for eksempel fremgangsmåten nedenfor til å legge til støtte for visuelle stiler For en SNAPIN-modul For Microsoft Management Console (MMC).
-
Kompilere snapin – modulen med-DISOLATION_AWARE_ENABLED flagget eller sett inn følgende setning før #include «windows.h » uttalelse.
#define ISOLATION_AWARE_ENABLED 1
Hvis du vil ha mer informasjon OM ISOLATION_AWARE_ENABLED, kan Du se Isolere Komponenter.
-
Inkluder den vanlige kontrolloverskriftsfilen i snapin-kilden.
#include <commctrl.h>
-
Legg til en fil som heter YourApp.manifest til kildetreet som bruker XML manifest-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>
-
Legg til manifestet i ressursfilen for snapin-modulen. Se Bruke ComCtl32 versjon 6 i Et Program Som Bruker Utvidelser, Plug-ins, ELLER EN DLL Som Er Brakt inn I En Prosess for detaljer om å legge til et manifest til en ressursfil.
Slå Av Visuelle Stiler
du kan slå av visuelle stiler For en kontroll eller for alle kontroller i et vindu ved Å ringe SetWindowTheme-funksjonen som følger:
SetWindowTheme(hwnd, L" ", L" ");
i forrige eksempel er hwnd håndtaket i vinduet for å deaktivere visuelle stiler. Etter samtalen gjør kontrollen uten visuelle stiler.
Bruk Av Visuelle Stiler med HTML-Innhold
HTML-sider som endrer Css-egenskaper (Cascading Style Sheets), for eksempel bakgrunn eller kantlinje, har ikke visuelle stiler brukt på dem. De viser det angitte CSS-attributtet. NÅR angitt som en del av innholdet, gjelder DE FLESTE CSS-egenskaper for elementer som har visuelle stiler brukt.
som standard brukes visuelle stiler på iboende HTML-kontroller på sider som vises I Microsoft Internet Explorer 6 og senere versjoner. Hvis du vil slå av visuelle stiler for EN HTML-side, legger DU TIL EN METAKODE i
– delen. Denne teknikken gjelder også for innhold pakket SOM HTML-Applikasjoner (Hta). FOR å slå av visuelle stiler MÅ METAKODEN være som følger:
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="no">
Merk
hvis nettleserinnstillingen og kodeinnstillingen ikke er enige, vil ikke visuelle stiler brukes på siden. HVIS METAKODEN for eksempel er satt til » nei » og nettleseren er satt til å aktivere visuelle stiler, brukes ikke visuelle stiler på siden. Men hvis enten nettleseren eller METAKODEN er satt til «ja» og det andre elementet ikke er angitt, brukes visuelle stiler.
Visuelle stiler kan endre utformingen av innholdet. Hvis du angir bestemte attributter på innebygde HTML-kontroller, for eksempel bredden på en knapp, kan det også hende at etiketten på knappen er uleselig under visse visuelle stiler.
du må teste innholdet grundig ved hjelp av visuelle stiler for å finne ut om bruk av visuelle stiler har en negativ effekt på innhold og layout.
Når Visuelle Stiler Ikke Brukes
for å unngå å bruke visuelle stiler i et vindu på øverste nivå, gi vinduet et område som ikke er null (SetWindowRgn). Systemet antar at et vindu med en IKKE-NULL-region er et spesialisert vindu som ikke bruker visuelle stiler. Et underordnet vindu som er knyttet til et toppnivåvindu med ikke-visuelle stiler, kan fortsatt bruke visuelle stiler, selv om det overordnede vinduet ikke gjør det.
hvis du vil deaktivere bruk av visuelle stiler for alle vinduer i programmet, kaller SetThemeAppProperties og ikke passere stap_allow_nonclient flagget. Hvis et program ikke kaller SetThemeAppProperties, er de antatte flaggverdiene STAP_ALLOW_NONCLIENT / STAP_ALLOW_CONTROLS / STAP_ALLOW_WEBCONTENT. De antatte verdiene forårsaker at ikke-klientområdet, kontrollene og webinnholdet har en visuell stil.
Å Gjøre Programmet Kompatibelt Med Tidligere Versjoner Av Windows
mye av den visuelle stilarkitekturen er utformet for å gjøre det enkelt å fortsette å sende produktet på tidligere versjoner Av Windows som ikke støtter endring av utseendet på kontroller. Når du sender et program for mer enn ett operativsystem, vær oppmerksom på følgende:
- i versjoner Av Windows før Windows 8 er visuelle stiler av når høy kontrast er på. For å støtte høy kontrast må et eldre program som støtter visuelle stiler, gi en egen kodebane for å tegne UI-elementer i høy kontrast på riktig måte. I Windows 8 er høy kontrast en del av visuelle stiler; imidlertid må Et Windows 8-program (en Som inkluderer WINDOWS 8-GUID i kompatibilitetsdelen av applikasjonsmanifestet) fortsatt gi en egen kodebane for å gjengi riktig i høy kontrast På Windows 7 en tidligere.
- hvis du bruker funksjonene I ComCtl32.dll versjon 6, for eksempel flisevisningen eller koblingskontrollen, må du håndtere tilfeller der disse kontrollene ikke er tilgjengelige på brukerens datamaskin. ComCtl32.dll versjon 6 kan ikke omfordeles.
- Test søknaden din For Å sikre at Du ikke stoler på funksjonene I ComCtl32.dll versjon 6 uten først å sjekke for den gjeldende versjonen.
- ikke koble Til UxTheme.lib.
- Skriv feilhåndteringskode for forekomster når visuelle stiler ikke fungerer som forventet.
- Installering av programmets manifest i tidligere versjoner vil ikke påvirke gjengivelsen av kontroller.
Visuelle Stiler