Inschakelen Visuele Stijlen

  • Artikel
  • 06/30/2021
  • 9 minuten te lezen
    • j
    • c
    • D
    • m
    • m
Is deze pagina nuttig?

Dank u.

in dit onderwerp wordt uitgelegd hoe u uw toepassing kunt configureren om ervoor te zorgen dat gemeenschappelijke besturingselementen worden weergegeven in de door de gebruiker gewenste visuele stijl.

dit onderwerp omvat de volgende secties.

  • manifesten of richtlijnen gebruiken om ervoor te zorgen dat visuele stijlen kunnen worden toegepast op toepassingen
  • met behulp van ComCtl32.dll versie 6 in een toepassing die alleen standaard extensies
  • gebruikt met ComCtl32 versie 6 in het Configuratiescherm of een DLL die wordt uitgevoerd door RunDll32.exe
  • het Toevoegen van Visuele Stijl van Steun aan een Extensie, Plug-in, De MMC-Module of een DLL-bestand Dat Wordt Gebracht in een Proces
  • Uitschakelen Visuele Stijlen
  • met Behulp van Visuele Stijlen met HTML-Inhoud
  • Als Visuele Stijlen worden niet Toegepast
  • het Maken van Uw Toepassing Compatibel is met Eerdere Versies van Windows
  • Verwante onderwerpen

met Behulp van de Manifesteert of Richtlijnen om ervoor te Zorgen Dat Visuele Stijlen Kunnen Worden Toegepast op Aanvragen

Om uw applicatie te gebruiken visuele stijlen, moet u gebruik maken van ComCtl32.dll versie 6 of hoger. Omdat versie 6 niet herdistribueerbaar is, is het alleen beschikbaar wanneer uw toepassing wordt uitgevoerd op een versie van Windows die het bevat. Windows wordt geleverd met zowel versie 5 als Versie 6. ComCtl32.dll versie 6 bevat zowel de user controls als de common controls. Standaard gebruiken Toepassingen De gebruikersbesturingselementen die zijn gedefinieerd in User32.dll en de gemeenschappelijke controles gedefinieerd in ComCtl32.dll versie 5. Zie gemeenschappelijke Besturingsversies voor een lijst met DLL-versies en hun distributieplatforms.

Als u wilt dat uw toepassing visuele stijlen gebruikt, moet u een toepassingsmanifest of compiler directive toevoegen die aangeeft dat ComCtl32.dll versie 6 moet worden gebruikt als deze beschikbaar is.

een toepassingsmanifest stelt een toepassing in staat om aan te geven welke versies van een samenstel nodig zijn. In Microsoft Win32, een assembly is een set van DLL ’s en een lijst van versiebare objecten die zijn opgenomen in die DLL’ s.

manifesten zijn geschreven in XML. De naam van het application manifest-bestand is de naam van het uitvoerbare bestand, gevolgd door de bestandsnaamextensie .manifesteren; bijvoorbeeld, MyApp.executable.manifesteren. Het volgende voorbeeld manifest laat zien dat het eerste deel het manifest zelf beschrijft. De volgende tabel toont de attributen die zijn ingesteld door het element assemblageidentiteit in de sectie manifest description.

attribuut beschrijving
versie versie van het manifest. De versie moet in de vorm majeur zijn.klein.herziening.build (dat wil zeggen, n.n.n. n, waarbij n < = 65535).
processorArchitecture Processor waarvoor uw toepassing is ontwikkeld.
naam omvat bedrijfsnaam, productnaam en toepassingsnaam.
type type van uw toepassing, zoals Win32.

het voorbeeldmanifest geeft ook een beschrijving van uw toepassing en specificeert toepassingsafhankelijkheden. De volgende tabel toont de attributen die zijn ingesteld door het element assemblageidentiteit in de sectie afhankelijkheid.

attribuut beschrijving
type type van de dependency component, zoals Win32.
naam naam van het onderdeel.
versie versie van het onderdeel.
processorarchitectuur Processor waarvoor het onderdeel is ontworpen.
publicKeyToken sleutel token gebruikt bij deze component.
taal taal van het onderdeel.

Hieronder volgt een voorbeeld van een manifest-bestand.

belangrijk

Stel de regel processorArchitecture in op” X86 “als uw toepassing zich richt op het 32-bit Windows-platform, of op” amd64 ” als uw toepassing zich richt op het 64-bit Windows-platform. U kunt ook ” * ” opgeven, wat ervoor zorgt dat alle platforms gericht zijn, zoals in de volgende voorbeelden wordt getoond.

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

Als u Microsoft Visual C++ 2005 of later gebruikt, kunt u de volgende compilerrichtlijn aan uw broncode toevoegen in plaats van handmatig een manifest te maken. Voor de leesbaarheid is de richtlijn hier in verschillende regels opgesplitst.

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

de volgende onderwerpen beschrijven de stappen voor het toepassen van visuele stijlen op verschillende soorten toepassingen. Merk op dat het manifest formaat in elk geval hetzelfde is.

Met ComCtl32.dll-versie 6 in een toepassing die alleen Standaardextensies

gebruikt, zijn de volgende voorbeelden van toepassingen die geen Extensies van derden gebruiken.

  • rekenmachine
  • FreeCell (in Windows Vista en Windows 7)
  • Mijnenveger (in Windows Vista en Windows 7)
  • Kladblok
  • Solitaire (in Windows Vista en Windows 7)

om een manifest te maken en uw toepassing in staat te stellen visuele stijlen te gebruiken.

  1. Link naar ComCtl32.lib en bel de gemeenschappelijke controle.

  2. voeg een bestand toe genaamd YourApp.executable.manifesteren naar uw bronstructuur die het XML manifest formaat heeft.

    <?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. voeg het manifest als volgt toe aan het bronbestand van uw toepassing:

    CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"

    opmerking

    wanneer u het vorige item aan de bron toevoegt, moet u het op één regel formatteren. Als alternatief kunt u het XML manifest-bestand in dezelfde map plaatsen als het uitvoerbare bestand van uw toepassing. Het besturingssysteem laadt het manifest eerst uit het bestandssysteem en controleert vervolgens de resource sectie van het uitvoerbare bestand. De versie van het bestandssysteem heeft voorrang.

wanneer u uw toepassing bouwt, wordt het manifest toegevoegd als een binaire bron.

met ComCtl32 versie 6 in het Configuratiescherm of een DLL die wordt uitgevoerd door RunDll32.exe

om een manifest aan te maken en uw toepassing in staat te stellen visuele stijlen te gebruiken.

  1. Link naar ComCtl32.lib en bel de gemeenschappelijke controle.

  2. voeg een bestand toe genaamd YourApp.cpl. manifest naar uw bronstructuur die het XML manifest formaat heeft.

    <?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. voeg het manifest toe aan het bronbestand van uw toepassing als bron-ID 123.

opmerking

wanneer u een toepassing op het Configuratiescherm aanmeldt, plaatst u deze in de juiste categorie. Configuratiescherm ondersteunt nu categorisatie van Configuratiescherm toepassingen. Dit betekent dat Configuratiescherm toepassingen kunnen worden toegewezen identifiers en gescheiden in taakgebieden zoals Toevoegen of verwijderen van programma ‘s, uiterlijk en thema’ s, of datum, Tijd, taal, en regionale opties.

ondersteuning voor visuele stijl toevoegen aan een extensie, Plug-in, MMC-module of een DLL die in een proces wordt gebracht

ondersteuning voor visuele stijlen kan worden toegevoegd aan een extensie, plug-in, MMC-module of een DLL die in een proces wordt gebracht. Voer bijvoorbeeld de volgende stappen uit om ondersteuning voor visuele stijlen toe te voegen voor een MMC-module (Microsoft Management Console).

  1. compileer uw module met de vlag-DISOLATION_AWARE_ENABLED of voer het volgende statement in voor de #include “vensters.h ” verklaring.

    #define ISOLATION_AWARE_ENABLED 1

    voor meer informatie over ISOLATION_AWARE_ENABLED, zie componenten isoleren.

  2. neem het common control header-bestand op in de bron van de module.

    #include <commctrl.h>
  3. voeg een bestand toe genaamd YourApp.manifesteren naar uw bronstructuur die het XML manifest formaat gebruikt.

    <?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. voeg het manifest toe aan het bronbestand van de module. Zie ComCtl32 versie 6 gebruiken in een toepassing die extensies, Plug-ins of een DLL gebruikt die in een proces wordt gebracht voor meer informatie over het toevoegen van een manifest aan een bronbestand.

visuele stijlen

u kunt visuele stijlen voor een besturingselement of voor alle besturingselementen in een venster uitschakelen door de functie SetWindowTheme als volgt aan te roepen:

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

in het vorige voorbeeld is hwnd de handgreep van het venster waarin visuele stijlen moeten worden uitgeschakeld. Na het gesprek, de controle maakt zonder visuele stijlen.

het gebruik van visuele stijlen met HTML-inhoud

HTML-pagina ‘ s die de CSS-eigenschappen (Cascading Style Sheets) wijzigen, zoals achtergrond of rand, hebben geen visuele stijlen toegepast. Ze geven het opgegeven CSS-attribuut weer. Wanneer opgegeven als onderdeel van de inhoud, zijn de meeste CSS-eigenschappen van toepassing op elementen die visuele stijlen hebben toegepast.

standaard worden visuele stijlen toegepast op intrinsieke HTML-besturingselementen op pagina ‘ s die worden weergegeven in Microsoft Internet Explorer 6 en latere versies. Om visuele stijlen voor een HTML-pagina uit te schakelen, voegt u een meta tag toe aan de

sectie. Deze techniek is ook van toepassing op content verpakt als HTML Applications (HTA ‘ s). Om visuele stijlen uit te schakelen, moet de metatag als volgt zijn:

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

opmerking

als de browserinstelling en de taginstelling niet overeenkomen, zal de pagina geen visuele stijlen toepassen. Bijvoorbeeld, als de metatag is ingesteld op “nee” en de browser is ingesteld om visuele stijlen in te schakelen, zullen visuele stijlen niet worden toegepast op de pagina. Echter, als ofwel de browser of metatag is ingesteld op ” Ja ” en het andere item niet is opgegeven, zullen visuele stijlen worden toegepast.

visuele stijlen kunnen de lay-out van uw inhoud wijzigen. Ook, als u bepaalde attributen op intrinsieke HTML-besturingselementen, zoals de breedte van een knop, kunt u merken dat het label op de knop onleesbaar is onder bepaalde visuele stijlen.

u moet uw inhoud grondig testen met behulp van visuele stijlen om te bepalen of het toepassen van visuele stijlen een negatief effect heeft op uw inhoud en opmaak.

wanneer visuele stijlen niet worden toegepast

om het toepassen van visuele stijlen op een venster op het hoogste niveau te vermijden, geeft u het venster een niet-null-gebied (SetWindowRgn). Het systeem gaat ervan uit dat een venster met een niet-NULL regio een gespecialiseerd venster is dat geen visuele stijlen gebruikt. Een dochtervenster geassocieerd met een niet-visueel-stijlen top level venster kan nog steeds visuele stijlen toepassen, hoewel het oudervenster dat niet doet.

als u het gebruik van visuele stijlen voor alle vensters in uw toepassing wilt uitschakelen, roept u SetThemeAppProperties aan en geeft u de vlag STAP_ALLOW_NONCLIENT niet door. Als een toepassing SetThemeAppProperties niet aanroept, zijn de aangenomen vlagwaarden STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS | STAP_ALLOW_WEBCONTENT. De veronderstelde waarden zorgen ervoor dat het niet-cliente gebied, de besturingselementen en webinhoud een visuele stijl hebben toegepast.

uw toepassing compatibel maken met eerdere versies van Windows

veel van de visuele stijlarchitectuur is ontworpen om het eenvoudig te maken om uw product te blijven verzenden naar eerdere versies van Windows die het uiterlijk van besturingselementen niet ondersteunen. Bij het verzenden van een toepassing voor meer dan één besturingssysteem, zich bewust zijn van de volgende:

  • in versies van Windows voorafgaand aan Windows 8, visuele stijlen zijn uitgeschakeld wanneer hoog contrast is ingeschakeld. Om hoog contrast te ondersteunen, moet een oudere toepassing die visuele stijlen ondersteunt een apart codepad bieden om UI-elementen in hoog contrast goed te tekenen. In Windows 8, hoog contrast is een onderdeel van visuele stijlen; echter, een Windows 8-toepassing (een die de Windows 8 GUID bevat in compatibiliteitssectie van de toepassing manifest) moet nog steeds een apart codepad bieden om correct te maken in hoog contrast op Windows 7 een eerder.
  • Als u de functies in ComCtl32 gebruikt.dll-versie 6, zoals het tegelweergave-of linkbeheer, moet u het geval behandelen waarin deze besturingselementen niet beschikbaar zijn op de computer van uw gebruiker. ComCtl32.dll versie 6 is niet herdistribueerbaar.
  • Test uw applicatie om er zeker van te zijn dat u niet vertrouwt op functies van ComCtl32.dll versie 6 zonder eerst te controleren voor de huidige versie.
  • link niet naar UxTheme.lib.
  • schrijf foutafhandelingscode voor gevallen waarin visuele stijlen niet werken zoals verwacht.
  • het manifest van uw toepassing installeren in eerdere versies heeft geen invloed op het renderen van besturingselementen.

Visuele Stijlen

Write a Comment

Het e-mailadres wordt niet gepubliceerd.