Kuinka Tehdä Ikkuna Puoliksi Läpinäkyvä

Sisällysluettelo:

Kuinka Tehdä Ikkuna Puoliksi Läpinäkyvä
Kuinka Tehdä Ikkuna Puoliksi Läpinäkyvä

Video: Kuinka Tehdä Ikkuna Puoliksi Läpinäkyvä

Video: Kuinka Tehdä Ikkuna Puoliksi Läpinäkyvä
Video: Muoviset rinteet parvekelohkossa 2024, Saattaa
Anonim

Graafisten näyttötekniikoiden parantamisen myötä myös käyttöjärjestelmien sovellusliittymä parani tarjoamalla ohjelmoijille yhä enemmän mahdollisuuksia kehittää epätyypillisiä liitäntäelementtejä. Joten yksi Windows 2000 -käyttöjärjestelmän innovaatioista oli kerrostetut ikkunat, joiden osat voivat olla läpikuultavia. Pian kuvaus kerrostettujen ikkunoiden kanssa työskentelyyn tarkoitetusta sovellusliittymästä tuli saataville MSDN: ssä. Ohjelmoijien foorumeilla kuitenkin kysytään edelleen, miten ikkuna tehdään puoliläpinäkyväksi.

Kuinka tehdä ikkuna puoliksi läpinäkyvä
Kuinka tehdä ikkuna puoliksi läpinäkyvä

Välttämätön

  • - kääntäjä;
  • - Windows SDK tai kehys Windows-ohjelmointia varten.

Ohjeet

Vaihe 1

Hanki kahva ikkunaan, jonka haluat tehdä osittain läpinäkyväksi. Etsi tai luo ikkuna. Luo se käyttämällä joko CreateWindow-, CreateWindowEx-sovellusliittymäfunktioita tai näiden toimintojen ympärille käärimismenetelmiä, jotka kuuluvat käytetyn kehyksen luokkiin. CreateWindow-toiminnon prototyyppi näyttää tältä:

HWND CreateWindow (LPCTSTR lpClassName, LPCTSTR lpWindowName, DWORD dwStyle, int x, sis. y, int nLeveys, int nKorkeus, HWND hWndParent,

HMENU hValikko, HINSTANCE hInstance, LPVOID lpParam);

Kuten näette, funktio palauttaa kahvan luotuun ikkunaan suorituksen tuloksena. Jos käytetään jotain käärintäluokkaa, hanki kahva sen menetelmillä luotua ikkunaa vastaavassa objektissa.

Vaihe 2

Ikkunan löytäminen voidaan tehdä käyttämällä API-kutsuja FindWindow, FindWindowEx, EnumWindows, EnumChildWindows, EnumThreadWindows ja niiden yhdistelmiä. Voit saada kahvan tietyn alueen ikkunaan käyttämällä WindowFromPoint- ja ChildWindowFromPoint-toimintoja.

Vaihe 3

Aseta ikkuna laajennettuun tyyliin WS_EX_LAYERED. Käytä SetWindowLong-sovellusliittymää tai vastaavia kääreobjektien menetelmiä. SetWindowLong-toiminto korvaa täysin muokattavat ikkunaparametritiedot, joten käytä sitä GetWindowLong-toiminnon kanssa saadaksesi tyylilippusarjan edellisen arvon. Esimerkiksi tyyliä voidaan muuttaa seuraavasti:

:: SetWindowLong (hWnd, GWL_EXSTYLE,:: GetWindowLong (hWnd, GWL_EXSTYLE));

Tässä hWnd on ikkunan kahva, joka löytyy edellisessä vaiheessa kuvattujen toimintojen suorittamisen seurauksena.

Vaihe 4

Tee ikkuna puoliläpinäkyväksi. Käytä SetLayeredWindowAttributes-sovellusliittymää tai kääreiden luokkien menetelmiä. SetLayeredWindowAttributes-funktion prototyyppi näyttää tältä:

BOOL SetLayeredWindowAttributes (HWND hwnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);

Vaihe 5

Funktion hwnd-parametrin on oltava kelvollinen ikkunan kahva, joka on saatu ensimmäisessä vaiheessa. CrKey-parametri on värinäppäin, jota käytetään määrittelemään osittain läpinäkyvät alueet. BAlpha-parametri määrittää läpikuultavuusarvon. Kun bAlpha-parametrin arvo on 0, "osittain läpinäkyvät" alueet ovat täysin läpinäkyviä. Jos bAlpha-parametri on 255, ne ovat täysin läpinäkymättömiä. Parametri dwFlags määrittää ikkunan sisällön edelleen näyttötavan. Kun LWA_COLORKEY-lippu sisältyy dwFlags-arvoon, ikkunan puoliläpinäkyvät alueet määritetään värinäppäimen perusteella. Kun LWA_ALPHA-lippu on käytössä, bAlpha-parametria käytetään läpikuultavuusarvon määrittämiseen.

Vaihe 6

Jos haluat tehdä koko ikkunasta puoliläpinäkyvän, kutsu SetLayeredWindowAttributes ensisijaisella bAlpha-parametriarvolla, LWA_ALPHA-lipulla, mutta ei LWA_COLORKEY-lipulla. Käytä löydettyä ikkunakahvaa toiminnon ensimmäisenä parametrina. Esimerkiksi, jos haluat tehdä ikkunasta puoliksi läpinäkyvän, käytä puhelua:

:: SetLayeredWindowAttributes (hWnd, RGB (0, 0, 0), 128, LWA_ALPHA);

Suositeltava: