visuaalisten tyylien mahdollistaminen

  • momentti
  • 06/30/2021
  • 9 luettavat minuutit
    • j
    • c
    • D
    • m
    • m
onko tästä sivusta apua?

Kiitos.

tämä aihe selittää, miten voit määrittää sovelluksen siten, että yhteiset ohjaimet näkyvät käyttäjän haluamassa visuaalisessa tyylissä.

aihepiiriin kuuluvat seuraavat osiot.

  • manifestien tai direktiivien avulla varmistetaan, että visuaalisia tyylejä voidaan soveltaa sovelluksiin
  • Comctl32: n avulla.DLL versio 6 sovelluksessa, joka käyttää vain Standardilaajennuksia
  • käyttäen Comctl32 versiota 6 ohjauspaneelissa tai DLL: ää, jota ylläpitää RunDll32.exe
  • visuaalisen Tyylituen lisääminen laajennukseen, laajennukseen, MMC-laajennukseen tai DLL-laajennukseen, joka tuodaan prosessiin
  • visuaalisten tyylien sammuttaminen
  • käyttämällä visuaalisia tyylejä, joissa on HTML-sisältöä
  • kun visuaalisia tyylejä ei käytetä
  • sovelluksen tekeminen yhteensopivaksi aikaisempien Windows-versioiden kanssa
  • aiheet

käyttämällä manifesteja tai direktiivejä, joilla varmistetaan, että visuaalisia tyylejä voidaan soveltaa sovelluksiin

, sinun on käytettävä Comctl32: ta.DLL versio 6 tai uudempi. Koska versio 6 ei ole uudelleenjaettavissa, se on käytettävissä vain silloin, kun sovelluksesi on käynnissä Windows-versiossa, joka sisältää sen. Windows alukset sekä Versio 5 ja versio 6. ComCtl32.DLL versio 6 sisältää sekä käyttäjän ohjausobjektit että yhteiset ohjausobjektit. Sovellukset käyttävät oletusarvoisesti user32: ssa määriteltyjä käyttäjäohjauksia.dll ja comctl32: ssa määritellyt yhteiset kontrollit.dll versio 5. Luettelo DLL-versioista ja niiden jakelualustoista on ohjeaiheessa Common Control-versiot.

jos haluat sovelluksesi käyttävän visuaalisia tyylejä, sinun on lisättävä sovelluksen manifesti tai kääntäjäohje, joka osoittaa, että ComCtl32.DLL versiota 6 tulee käyttää, jos se on saatavilla.

sovellusluettelon avulla sovellus voi määrittää, mitä kokoonpanoversioita se tarvitsee. Microsoft Win32: ssa assembly on joukko DLL: iä ja luettelo versioitavista objekteista, jotka sisältyvät näihin DLL: ään.

manifestit on kirjoitettu XML-kielellä. Sovelluksen manifest-tiedoston nimi on suoritustiedoston nimi, jota seuraa tiedostotunniste .osoittaa; esimerkiksi MyApp.exe.osoittaa. Seuraava otos manifesti osoittaa, että ensimmäinen jakso kuvaa manifestia itseään. Seuraavassa taulukossa esitetään assemblyIdentity-elementin määrittelemät attribuutit manifest description-osiossa.

ominaisuus kuvaus
versio manifestin versio. Version on oltava muodossa major.pieni.tarkistus.build (eli n.n.n, jossa n <=65535).
processorArchitecture prosessori, jolle sovellus on kehitetty.
nimi sisältää yrityksen nimen, tuotteen nimen ja sovelluksen nimen.
Kirjoita hakemuksesi tyyppi, kuten Win32.

esimerkkiluettelo antaa myös kuvauksen sovelluksestasi ja määrittää sovelluksen riippuvuudet. Seuraavassa taulukossa on esitetty riippuvuusosiossa assemblyIdentity-elementin asettamat attribuutit.

ominaisuus kuvaus
tyyppi riippuvuuskomponentin tyyppi, kuten Win32.
nimi komponentin nimi.
version komponentin versio.
processorArchitecture prosessori, johon komponentti on suunniteltu.
publicKeyToken Key token käytetään tämän komponentin kanssa.
kieli komponentin kieli.

Seuraavassa on esimerkki manifest-tiedostosta.

tärkeä

Aseta prosessiarkkitehtuurimerkintä kohtaan ”X86″, jos sovelluksesi kohdistuu 32-bittiseen Windows-alustaan, tai kohtaan” amd64″, jos sovelluksesi kohdistuu 64-bittiseen Windows-alustaan. Voit myös määrittää ”*”, joka varmistaa, että kaikki alustat ovat kohdennettuja, kuten seuraavissa esimerkeissä.

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

jos käytät Microsoft Visual C++ 2005: tä tai uudempaa, voit lisätä seuraavan kääntäjädirektiivin lähdekoodiisi sen sijaan, että loisit manifestin manuaalisesti. Luettavuuden vuoksi direktiivi on tässä jaettu useisiin riveihin.

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

seuraavissa aiheissa kuvataan vaiheita, joilla visuaalisia tyylejä voidaan soveltaa erityyppisiin sovelluksiin. Huomaa, että manifestin muoto on kaikissa tapauksissa sama.

Käyttäen ComCtl32: Ta.DLL versio 6 sovelluksessa, joka käyttää vain Standardilaajennuksia

seuraavat ovat esimerkkejä sovelluksista, jotka eivät käytä kolmannen osapuolen laajennuksia.

  • Laskin
  • FreeCell (Windows Vistassa ja Windows 7: ssä)
  • miinanraivaaja (Windows Vistassa ja Windows 7: ssä)
  • Notepad
  • pasianssi (Windows Vistassa ja Windowsissa 7)

luoda manifestin ja mahdollistaa sovelluksen käyttää visuaalisia tyylejä.

  1. linkki ComCtl32: een.lib ja kutsu se komentokeskukseen.

  2. Lisää tiedosto nimeltä YourApp.exe.manifest to your source tree that has the XML manifest format.

    <?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. lisää manifesti sovelluksen resurssitiedostoon seuraavasti:

    CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"

    Huomautus

    kun lisäät edellisen merkinnän resurssiin, sinun on muotoiltava se yhdelle riville. Vaihtoehtoisesti voit sijoittaa XML manifest-tiedoston samaan hakemistoon kuin sovelluksen suoritettavan tiedoston. Käyttöjärjestelmä lataa ensin manifestin tiedostojärjestelmästä ja tarkistaa sitten suoritettavan resurssiosion. Tiedostojärjestelmän versio on etusijalla.

kun rakennat sovelluksen, manifesti lisätään binääriresurssina.

käyttäen Comctl32: n versiota 6 ohjauspaneelissa tai RunDll32: n ylläpitämää DLL: ää.exe

luoda manifesti ja mahdollistaa sovelluksen käyttää visuaalisia tyylejä.

  1. linkki ComCtl32: een.lib ja kutsu se komentokeskukseen.

  2. Lisää tiedosto nimeltä YourApp.CPL.manifest to your source tree that has the XML manifest format.

    <?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. lisää manifesti sovelluksen resurssitiedostoon resurssitunnuksena 123.

Huomautus

kun kirjoitat Ohjauspaneelisovelluksen, aseta se asianmukaiseen luokkaan. Ohjauspaneeli tukee nyt Ohjauspaneelisovellusten luokittelua. Tämä tarkoittaa, että ohjauspaneelin sovelluksille voidaan antaa tunnisteita ja ne voidaan jakaa tehtäväalueisiin, kuten Lisää tai poista ohjelmia, ulkonäkö ja teemat tai Päivämäärä, kellonaika, kieli ja alueelliset vaihtoehdot.

visuaalisen tyylin tuen lisääminen laajennukseen, laajennukseen, MMC-laajennukseen tai DLL-laajennukseen, joka tuodaan prosessiin

visuaalisten tyylien tuki voidaan lisätä laajennukseen, laajennukseen, MMC-laajennukseen tai DLL-laajennukseen, joka tuodaan prosessiin. Käytä esimerkiksi seuraavia ohjeita lisätäksesi visuaalisten tyylien tuen Microsoft Management Console (MMC)-laajennukselle.

  1. Käännä laajennuksesi-DISOLATION_AWARE_ENABLED-lipulla tai lisää seuraava lauseke ennen #include ” – ikkunaa.h ” lausunto.

    #define ISOLATION_AWARE_ENABLED 1

    lisätietoja ISOLAATIOSTA_AWARE_KESTÄVÄT, KS.Isoloivat komponentit.

  2. Sisällytä common control header-tiedosto laajennuslähteeseesi.

    #include <commctrl.h>
  3. Lisää tiedosto nimeltä YourApp.manifest to your source tree that uses the XML manifest format.

    <?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. lisää luettelo laajennuksen resurssitiedostoon. Katso Comctl32 Version 6 käyttäminen sovelluksessa, joka käyttää laajennuksia, laajennuksia tai DLL: ää, joka tuodaan prosessiin, saadaksesi lisätietoja manifestin lisäämisestä resurssitiedostoon.

visuaalisten tyylien sammuttaminen

voit sammuttaa visuaaliset tyylit ohjausobjektille tai kaikille ikkunan ohjausobjekteille kutsumalla SetWindowTheme-toimintoa seuraavasti:

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

edellisessä esimerkissä, hwnd on kahva ikkunan, jossa poistaa visuaalisia tyylejä. Puhelun jälkeen ohjaus antaa ilman visuaalisia tyylejä.

käyttämällä visuaalisia tyylejä, joiden HTML-sisältö on

HTML-sivuja, jotka muokkaavat Cascading Style Sheets (CSS) – ominaisuuksia, kuten taustaa tai reunaa, niihin ei ole sovellettu visuaalisia tyylejä. Ne näyttävät määritetyn CSS-attribuutin. Kun osa sisältöä on määritelty, useimmat CSS-ominaisuudet koskevat elementtejä, joissa on visuaalisia tyylejä.

oletuksena visuaalisia tyylejä sovelletaan luontaisiin HTML-ohjauksiin Microsoft Internet Explorer 6: ssa ja sitä uudemmissa versioissa näytettävillä sivuilla. Jos haluat poistaa HTML-sivun visuaaliset tyylit käytöstä, lisää META-tunniste

– osioon. Tämä tekniikka koskee myös HTML-sovelluksina (HTAs) pakattua sisältöä. Visuaalisten tyylien sammuttamiseksi META-tagin on oltava seuraava:

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

Huomautus

jos selaimen asetus ja tagin asetus eivät sovi yhteen, sivu ei sovella visuaalisia tyylejä. Jos esimerkiksi META-tunnisteen arvo on ” ei ” ja selain on asetettu ottamaan käyttöön visuaaliset tyylit, visuaalisia tyylejä ei sovelleta sivulle. Kuitenkin, jos joko selaimen tai METATUNNISTEEN arvo on ”kyllä” ja muuta kohtaa ei ole määritetty, käytetään visuaalisia tyylejä.

visuaaliset tyylit saattavat muuttaa Sisällön ulkoasua. Myös, jos asetat tiettyjä attribuutteja luontaisille HTML-ohjauksille, kuten painikkeen leveydelle, saatat huomata, että painikkeen etiketti on lukukelvoton tietyissä visuaalisissa tyyleissä.

sinun on testattava sisältösi perusteellisesti visuaalisten tyylien avulla selvittääksesi, onko visuaalisten tyylien soveltaminen haitallista sisällöllesi ja ulkoasullesi.

jos visuaalisia tyylejä ei sovelleta

, jotta vältetään visuaalisten tyylien soveltaminen ylätason ikkunaan, annetaan ikkunalle ei-tyhjä alue (SetWindowRgn). Järjestelmä olettaa, että ikkuna, jonka alue ei ole nolla, on erikoistunut ikkuna, joka ei käytä visuaalisia tyylejä. Ei-visuaalisten tyylien ylätason ikkunaan liittyvä lapsiikkuna voi edelleen soveltaa visuaalisia tyylejä, vaikka vanhempi ikkuna ei.

jos haluat poistaa visuaalisten tyylien käytön kaikista sovelluksessasi olevista ikkunoista, soita Setthemeapppropertiesille äläkä ohita stap_allow_nonclient-lippua. Jos sovellus ei kutsu SetThemeAppProperties, oletetut lippuarvot ovat STAP_ALLOW_NONCLIENT | STAP_ALLOW_CONTROLS | STAP_ALLOW_WEBCONTENT. Oletetut arvot aiheuttavat sen, että ei-client-alueella, kontrolleilla ja verkkosisällöllä on visuaalinen tyyli.

sovelluksen tekeminen yhteensopivaksi aikaisempien Windows-versioiden kanssa

suuri osa visuaalisesta tyyliarkkitehtuurista on suunniteltu siten, että on helppoa jatkaa tuotteen lähettämistä aikaisempiin Windows-versioihin, jotka eivät tue hallintalaitteiden ulkonäön muuttamista. Kun lähetät sovellusta useammalle kuin yhdelle käyttöjärjestelmälle, ota huomioon seuraavat seikat::

  • Windows 8: aa edeltävissä Windows-versioissa visuaaliset tyylit ovat pois päältä, kun suuri kontrasti on päällä. Suuren kontrastin tukemiseksi visuaalisia tyylejä tukevan vanhan sovelluksen on tarjottava erillinen koodipolku, jotta käyttöliittymäelementit voidaan piirtää oikein suuressa kontrastissa. Windows 8, suuri kontrasti on osa visuaalisia tyylejä; kuitenkin, Windows 8 sovellus (joka sisältää Windows 8 GUID yhteensopivuusosiossa sen sovelluksen manifest) on vielä tarjota erillinen koodipolku tehdä oikein suuri kontrasti Windows 7 aikaisemmin.
  • jos käytät comctl32: n ominaisuuksia.dll versio 6, kuten laattanäkymä tai linkkiohjaus, sinun on käsiteltävä tapausta, jossa kyseiset ohjaimet eivät ole käytettävissä käyttäjän tietokoneessa. ComCtl32.DLL versio 6 ei ole uudelleenjaettavissa.
  • testaa sovelluksesi varmistaaksesi, ettet luota ComCtl32: n ominaisuuksiin.dll versio 6 tarkistamatta ensin nykyistä versiota.
  • älä linkitä uxthemeen.lib.
  • Kirjoita virheenkäsittelykoodi tilanteissa, joissa visuaaliset tyylit eivät toimi odotetulla tavalla.
  • sovelluksen manifestin asentaminen aikaisempiin versioihin ei vaikuta hallintalaitteiden renderöintiin.

Kuvatyylit

Write a Comment

Sähköpostiosoitettasi ei julkaista.