c# c++ user-interface aero nonclient

c# - Pintura no cliente en una ventana de vidrio aero



c++ user-interface (3)

AFAIK, esto no es posible , porque el área que está fuera del límite de tu ventana simplemente no te pertenece .

La captura de pantalla de Skype proviene de un marco dibujado a medida que muy probablemente se extiende un poco más allá de los bordes visibles, no desde un marco Aero Glass . Puedes ver la diferencia si miras detenidamente.

Ahora estoy personalizando la barra de título de mi aplicación. Mi objetivo es agregar un botón adicional en la barra de título. Mi pregunta anterior es que la gente me ha aconsejado la forma en que puedo personalizar el área no cliente. Eso funciona a la perfección, excepto una pequeña cosa: ¡ resplandeciente ! Puedo dibujar brillante en el área no cliente pero no puedo hacer que se extienda por la ventana . Tampoco puedo encontrar ningún recurso sobre este subj.

Revisé this muestra e hice mi propia aplicación de prueba para investigar instalaciones de dibujo que no son clientes. Captura de pantalla de la ventana de mi aplicación:

Entonces puede ver que el botón del sistema brilla por las ventanas cuando mi clip está recortado por el borde.

Por ejemplo, la ventana de Skype tiene cuatro botones personalizados en la barra de título y pueden "brillar" en el marco de la ventana:

¿Alguien puede aconsejarme que encuentre la manera de dibujar el brillo de los botones por la ventana?
¡Gracias por adelantado!

[EDITAR]
¡Gracias a todos por las respuestas!


No creo que sea posible dibujar más allá de su área NC, y dudo que estén dibujando toda la interfaz de usuario para coincidir exactamente con los efectos DWM Aero.

Teniendo en cuenta cómo se ve esto, me pregunto si hicieron algunos trucos con el botón de ayuda o restauración de CustomBorderForm, que luego obtendría el efecto DWM blur highlight "de forma gratuita".

Aquí está el artículo más relevante que pude encontrar en esto: http://geekswithblogs.net/kobush/articles/CustomBorderForms3.aspx

Seguimiento: creo que este hilo personalizado de Chrome tiene más sugerencias para las mismas técnicas (aunque es un objetivo diferente): barras de título personalizadas / chrome en una aplicación de WinForms


Skype lo engaña y tiene una pequeña astilla en la parte superior de la ventana; donde pueden dibujarlo

Puedes verlo con Process Explorer en SpyXX:

Ver también

MSDN: marco de ventana personalizado usando DWM