2010-02-20 4 views
1

J'utilise le code suivant pour rendre mon formulaire entièrement transparent afin que les clics puissent le "traverser" vers d'autres fenêtres.Delphi Drawing Focus

SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0,0, 
        SWP_NOSIZE or SWP_NOMOVE); 
SetWindowLong(form1.handle,GWL_EXSTYLE,WS_EX_TOPMOST or WS_EX_LAYERED); 
SetLayeredWindowAttributes(form1.handle,RGB(0,0,0),200,LWA_ALPHA or LWA_COLORKEY); 

Mon problème est que quand je commence le dessin sur la forme, ces dessins peuvent être cliqué sur le bouton et la forme Delphi prendront mise au point. Je veux pouvoir dessiner sans que ces dessins soient "cliquables".

J'espère que j'étais assez clair. Toute aide est appréciée.

Répondre

1

Vous devez également définir le style de fenêtre étendue WS_EX_TRANSPARENT.

+0

Merci beaucoup! Ça m'a dérangé le plus longtemps. – Chris

1

Donnez à votre fenêtre le style de la fenêtre WS_EX_TRANSPARENT ou manipulez le message WM_NCHITTEST et renvoyez HTTRANSPARENT. voir ce poste lié pour un exemple (Windows API) WM_PAINT Mouse problems