2008-09-22 13 views
1

Je souhaite créer une application C# avec plusieurs fenêtres transparentes avec du texte.Formulaire transparent sur le bureau

La partie délicate consiste à placer ces formulaires sur le bureau, mais sous les icônes du bureau. Est-ce possible?

Répondre

4

juste faire la fenêtre transparente est très simple:

this.BackColor = Color.Fuchsia; 
this.TransparencyKey = Color.Fuchsia; 

Vous pouvez faire quelque chose comme ça pour le faire, vous pouvez donc toujours interagir avec le bureau ou toute autre chose sous votre fenêtre:

public const int WM_NCHITTEST = 0x84; 
public const int HTTRANSPARENT = -1; 

protected override void WndProc(ref Message message) 
{ 
    if (message.Msg == (int)WM_NCHITTEST) 
    { 
     message.Result = (IntPtr)HTTRANSPARENT; 
    } 
    else 
    { 
     base.WndProc(ref message); 
    } 
} 
0

Merci pour les conseils Jeff. Ce n'est toujours pas ce que je cherche. Je voudrais effectivement que la fenêtre apparaisse comme si elle faisait partie du bureau afin que les icônes puissent s'asseoir sur mon formulaire.

Peut-être qu'il y a une façon différente de le faire. Puis-je dessiner du texte et des graphiques directement sur le bureau?

0

La méthode décrite ci-dessus par Jeff Hillman est efficace pour rendre la fenêtre transparente, ce qui devrait vous donner la possibilité de le faire apparaître comme si elle fait partie du bureau (dont vous avez parlé est votre objectif.

Une question vous pouvez rencontrer, comme je viens de le faire récemment, dessiner dans la fenêtre avec tous les indicateurs d'anti-aliasing définis.À l'aide de DrawText, tout texte affiché avec des indicateurs d'anti-aliasing est rendu comme si l'arrière-plan était Le résultat final est que vous obtenez du texte avec une légère bordure hors-couleur autour de lui Je suis sûr que cela serait vrai pour toute autre chose, même si je n'ai pas essayé.Y a-t-il des idées sur la façon de résoudre cela?

Questions connexes