11
votes

Comment créer une fenêtre en forme d'ellipse avec VC ++ à l'aide de l'API Win32

Je crée un programme de fenêtre utilisant VC ++ via Win32 API. Je voulais créer une fenêtre en forme d'ellipse comment cela peut être poursuivi.


0 commentaires

4 Réponses :


1
votes

Utilisez Setwindowrgn pour faire la zone de dessin de la fenêtre un Région elliptique. Cela empêche de dessiner à la fenêtre la limite de l'ellipse.


0 commentaires

1
votes

Le seul problème avec l'utilisation de Setwindowrgn est des régions sont difficiles à créer des formes complètement arbitraires.

Windows 2000 introduit des fenêtres en couches pour résoudre ceci et comment Clippy a pu échapper aux limites de sa fenêtre.

voir http://msdn.microsoft.com/en-us/ Bibliothèque / MS997507.ASPX Pour plus d'informations sur les fenêtres en couches.


0 commentaires

6
votes

Utilisation ws_ex_layered dans votre attribut de style Windows et appeler updateLayeredwindow est probablement le moyen le plus flexible de contrôler une fenêtre de forme personnalisée / transparente à l'aide de l'API Win32. Il y a une excellente pause (bien que un peu vieux) sur MSDN: http://msdn.microsoft.com/en-us/library/ms997507.aspx

et Doc officiel pour UpdateLayeredWindow: http://msdn.microsoft.com/en-us/ Bibliothèque / MS633556 (vs.85) .aspx


0 commentaires

1
votes

Eh bien, c'est une réponse si tardive, mais je pensais qu'il serait important que vous sachiez. Il existe un logiciel gratuit génère un code source pour VB, C ++, C # et Delphi.Tous que vous devez faire est de concevoir votre formulaire dans Photoshop ou quel que soit le peintre, que ce logiciel détecte la forme que vous avez conçue et génère un code pour vous. Vous pouvez étudier ce code ou simplement l'utiliser. N'oubliez pas de lire l'aide CoZ Il existe des problèmes concernant la compilation. Formation joyeuse. http://www.byalexv.co.uk/


0 commentaires