2010-07-31 22 views
6

Podemos pintar las imágenes y dibujar texto ... fuera de una forma .. me refiero literalmente fuera ...dibujar/pintar de formulario fuera

i conocer su estúpida pregunta para preguntar pero ¿podemos ...

+1

o sin una forma – Moon

Respuesta

10

Puede "engañar" creando un formulario y estableciendo su propiedad TransparentColor en su color de fondo, luego dibuje sobre él. Sin embargo, esto le prohíbe dibujar el color transparente porque no se mostrará.

O podría dibujar directamente en el escritorio.

[DllImport("User32.dll")] 
public static extern IntPtr GetDC(IntPtr hwnd); 
[DllImport("User32.dll")] 
public static extern void ReleaseDC(IntPtr dc); 

IntPtr desktopPtr = GetDC(IntPtr.Zero); 
Graphics g = Graphics.FromHdc(desktopPtr); 

// Do graphics manipulation here with "g" object 

// Very important - free desktop graphics. 
g.Dispose(); 
ReleaseDC(desktopPtr); 
+4

El problema de dibujar directamente en la ventana del escritorio es que no se pegue. La próxima vez que se le diga al escritorio que vuelva a pintar, su dibujo desaparecerá. Si bien podría enganchar la bomba de mensajes del escritorio y volver a dibujar cada vez que se vuelva a dibujar, esta es una exageración seria. El uso de una ventana transparente de pantalla completa que posee su ventana principal es la forma más económica de llegar allí. – Tergiver

1

No puede recurrir a algo que no existe. El área fuera de de un formulario, por esa definición, no existe en el contexto del formulario.

Estoy de acuerdo con Henk, sin embargo, usted puede empate en formas transparentes.

Cuestiones relacionadas