Avatar billede Slettet bruger
19. januar 2006 - 15:27 Der er 9 kommentarer og
1 løsning

GetLayeredWindowAttributes() Skal finde Opacity værdien..

Jeg har lavet funktionen der sætter Opacity på et specifikt vindue per hWnd. Men jeg skal kunne retrieve værdien også, hvordab gør jeg det, har søgt hele google igennem :(

[DllImport("user32.dll")] private static extern bool GetLayeredWindowAttributes(int Handle, int crKey,
byte bAlpha, int dwFlags);

tror det er noget i den stil, men hvordan hiver jeg værdien af "bAlpha" ud?

På forhånd tak..
Avatar billede nielle Nybegynder
19. januar 2006 - 22:44 #1
Erklæres sådan:

        [DllImport("user32.dll")]
        public static extern bool GetLayeredWindowAttributes(
            int hwnd,
            ref int pcrKey,
            ref byte pbAlpha,
            ref int pdwFlags
            );

- og kaldes på denne måde:

            int pcrKey = 0;
            byte pbAlpha = 0;
            int pdwFlags = 0;
                       
            bool succes = GetLayeredWindowAttributes(hwnd, ref pcrKey, ref pbAlpha, ref pdwFlags);
Avatar billede Slettet bruger
19. januar 2006 - 22:57 #2
Hmm, det angiver jo kun om det er trans eller ikke, jeg ville meget gerne have værdien HVOR MEGET trans der er sat..:)

Tak for din hjælp
Avatar billede nielle Nybegynder
19. januar 2006 - 23:02 #3
Alternativt sådan:

        [DllImport("user32.dll")]
        public static extern bool GetLayeredWindowAttributes(
            int hwnd,
            out int pcrKey,
            out byte pbAlpha,
            out int pdwFlags
            );

- og sådan:

          int pcrKey;
            byte pbAlpha;
            int pdwFlags;
                       
            bool succes = GetLayeredWindowAttributes(hwnd, out pcrKey, out pbAlpha, out pdwFlags);
Avatar billede nielle Nybegynder
19. januar 2006 - 23:04 #4
"succes" angiver om GetLayeredWindowAttributes gik godt eller ej, ikke om den er "trans" eller ej.

For at få værdien af pbAlpha, skal du selbfølgeligt udskrive den eller sådan noget.
Avatar billede Slettet bruger
19. januar 2006 - 23:09 #5
jep lige præcis, mange tak!.. smid lige et svar :)
Avatar billede nielle Nybegynder
19. januar 2006 - 23:13 #6
Svar :^)
Avatar billede Slettet bruger
19. januar 2006 - 23:15 #7
Foresten, kan du forklare mig hvordan jeg lukker eller "dræber" et vindue via hWnd, CloseWindow fra user32.dll minimere kun vinduet :/
Avatar billede nielle Nybegynder
20. januar 2006 - 08:29 #8
DestroyWindow()
Avatar billede Slettet bruger
20. januar 2006 - 08:52 #9
"A thread cannot use DestroyWindow to destroy a window created by a different thread."

Det kan kun lukke mit eget program, hva gør jeg så?
Avatar billede nielle Nybegynder
20. januar 2006 - 12:03 #10
Du kan så msåek bruge SendMessage eller PostMessage til at semde en besked til vinduet og bede det om at lukke sig selv.


Here er et eksempel (godt nok i VB, men det kan vel oversættes):

http://www.eksperten.dk/spm/251084
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester