Avatar billede Slettet bruger
19. september 2009 - 11:46 Der er 4 kommentarer og
1 løsning

slå WS_EX_LAYERED fra igen

Hey

Jeg har en windows application, som jeg har gjort "click through enabled" med dette stykke kode:

SetWindowLong( this.Handle, GWL_EXSTYLE,
            (IntPtr)( GetWindowLong( this.Handle, GWL_EXSTYLE ) | WS_EX_LAYERED | WS_EX_TRANSPARENT ) );

Problemet er bare at jeg gerne vil kunne undo det, så den bliver til sin oprindlige tilstand igen. nogen forslag?

dens oprindlige tilstand er Opacity = 0.5; og ikke andet.

på forhånd tak
Avatar billede arne_v Ekspert
19. september 2009 - 14:25 #1
To muligheder:

1)

old = GetWindowLong( this.Handle, GWL_EXSTYLE );
SetWindowLong( this.Handle, GWL_EXSTYLE,
            (IntPtr)old | WS_EX_LAYERED | WS_EX_TRANSPARENT ) ;

...

SetWindowLong( this.Handle, GWL_EXSTYLE, old);

2)

old = SetWindowLong( this.Handle, GWL_EXSTYLE,
            (IntPtr)( GetWindowLong( this.Handle, GWL_EXSTYLE ) | WS_EX_LAYERED | WS_EX_TRANSPARENT ) );

...

SetWindowLong( this.Handle, GWL_EXSTYLE, old);
Avatar billede arne_v Ekspert
19. september 2009 - 14:26 #2
PS: Hvorfor det cast til IntPtr ??
Avatar billede Slettet bruger
19. september 2009 - 15:03 #3
alt for lækkert tak :D
Avatar billede Slettet bruger
19. september 2009 - 15:04 #4
opret lige et svar :)
Avatar billede arne_v Ekspert
20. september 2009 - 03:32 #5
kommer her
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