Question

J'ai une forme en couches avec le jeu de style étendu WS_EX_LAYERED. J'ai créé un contrôle "Modifier" enfant à l'aide de la fonction API de Creewindowex (...); Le contrôle qu'il est là mais n'est pas peint et rien n'apparaît sur la forme.

Je sais que lorsque vous utilisez le style WS_EX_LAYERED sur une fenêtre supérieure, le message WM_Paint n'est plus envoyé et aucun contrôle des enfants ne le recevra donc de sorte que cela n'apparaît pas.

Prenez en compte que l'opacité de la forme est définie sur 255 et l'arrière-plan est peint avec une image transparente à l'aide de l'API UpdateLayeredWindow (...) API.

Lorsque je survole la souris sur le contrôle d'édition, le curseur de texte apparaît et je peux copier le texte à l'intérieur.

Je suppose que le problème que je dois faire face est en quelque sorte en train de faire le contrôle d'accepter la peinture de l'utilisateur.

J'ai essayé de peindre le contrôle avec la même technique que le formulaire, et pour cela, j'ai créé un CC compatible du formulaire, mais je ne sais pas si cela est même possible, mon contrôle n'est toujours pas peint.

devrait-il fonctionner si j'envoie le wm_printclient pour ce contrôle? Dans ce cas, le DC devrait être la forme parent en couches? J'ai aussi essayé cela mais je ne pouvais pas le faire fonctionner.

formulaire normal: http://img580.imageshack.us/i/formy.png/

formulaire superposé: http://img6.imageshack.us/i/layeredform.png/

Ma question est comment puis-je faire mon contrôle d'édition Accepter une peinture alpha-mélangée? Comment peindre un contrôle alpha-mélangé sur la forme en couches?

Était-ce utile?

La solution

À la fin, j'ai trouvé un moyen de le faire,

Ce que je devais faire était d'obtenir l'image bitmap de chaque contrôle et de le dessiner sur le fond de la forme ... Lorsque j'ai appliqué UpdateLayeredWindow pour le formulaire, le formulaire bitmap contenait toutes les commandes,

Je ne sais toujours pas si c'est une meilleure pratique mais

La méthode fonctionne bien mais je dois la perfectionner et ajouter plus d'interaction + commandes en mélange alpha. D'autre part, il y a

ici c'est: http://img84.imageshack.us/img84/3172/73845647.png

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top