c # - Sådan tilføjes en ekstra knap til vinduets titellinje, så det vil fungere som standard?

Indlæg af Hanne Mølgaard Plasc

Problem



For det første vil jeg nævne, at jeg allerede har læst alle artikler om SO på emne, men har stadig ikke noget svar på mit spørgsmål. Også mit spørgsmål er lidt anderledes end andre.

I dag ser jeg på Skype-vinduet. Der er en ekstra knap på dens titellinje. Men denne knap fungerer som en indbygget systemknap. Bare se på glødende Den spredes ud af vinduet . Så jeg har det rimelige spørgsmål. vi kan se på billedet nedenfor, der er standard måde at tilføje ekstra knap på titellinjen. Men alle svar på subj fører til tilslutning af WM\_NCPAINT event og manuel tegning af ekstra knap. Denne tilgang er arbejde, men det kunne ikke give sådan smukke glødende som på billedet.

Kender nogen den måde at tilføje standardiseret knap på vinduets titellinje?
Tak på forhånd!

Indtast billedbeskrivelse her

Bedste reference


I Vista og Windows 7 er der en ny ting kaldet Desktop Window Manager. Dette bruges til at tegne 'Aero glass' vinduet titelbjælker, og gøre glød effekter. Den gamle Windows XP-tilgang til implementering af WM\_NCPAINT-håndtere virker ikke med dette nye system, så du skal bruge et helt nyt API.


Jeg er sikker på, at jeg har set nogle artikler om, hvad du spørger om, men kan ikke finde dem lige nu. Nogle sider, der kan give dig nogle ledninger, er:



  • http://msdn.microsoft.com/en-us/magazine/cc163435.aspx [2]

  • http://msdn.microsoft.com/en-us/library/aa969540 (v=VS.85) Aspx [3]

  • http://delphihaven.wordpress.com/2010/04/19/setting-up-a-custom-titlebar/[4]


Andre referencer 1


Ja, det kan være (og uden tvivl er ) gjort ved at tilslutte WM\_NCPAINT og male deres knap som svar på det. Den 'glødende' er bare et spørgsmål om at vælge den passende farve og skygge (og muligvis lave en smule alfa-blanding for at få noget 'glød' vises tæt på knappen).