Je cherche un moyen d'AlphaBlend un formulaire enfant, si possible en utilisant des fenêtres en couches car il y aura des contrôles interactifs derrière lui.AlphaBlend un formulaire enfant
Le problème est que j'ai un composant dans un TForm normal qui peint de multiples couches visuelles (dessins, images ...). À un moment donné, je dois instancier un contrôle d'éditeur sur ce formulaire (sur place), ce contrôle impliquera une variété de contrôles d'entrée standard en dehors de mon contrôle (boîte d'édition, case à cocher, etc.), mais je voudrais superposer les calques devant le calque en cours d'édition à l'aide de l'alpha-blending (et WS_EX_TRANSPARENT
pour le rendre cliquable). J'ai d'abord pensé à utiliser des formes enfants pour cela (TForm
sans parent), et cela fonctionne, au point où AlphaBlended TForm n'est pas du tout alphablendé, mais devient opaque dès que parenté J'ai ensuite essayé de désactiver la forme alphablended, de la définir sur fsStayOnTop, et en réagissant aux événements pertinents, la garder devant le composant à l'écran, cela fonctionne, mais ce n'est pas vraiment satisfaisant solution: le formulaire StayOnTop alphablended est également en face d'autres formes modales et non modales de l'application, si l'utilisateur décide de les déplacer devant le composant ...
Ainsi, toutes les autres idées sur un moyen d'avoir un formulaire enfant sont alphablended? (ou se comporter comme il est)
Le style ws_ex_Transparent ne rend pas la fenêtre immunisée aux événements de la souris. Ce style n'affecte que l'ordre de la peinture. Si vous ne souhaitez pas recevoir d'événements de souris, utilisez SetWindowRgn pour créer des "trous" dans la fenêtre. –