M
macross
Unregistered / Unconfirmed
GUEST, unregistred user!
我打算把一个带Alpha透明的窗体嵌入桌面, 但是总失败.贴一下代码请高人帮忙看看.谢谢!<br><br>procedure TfmSite.FormCreate(Sender: TObject);<br>begin<br> SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);<br> SetLayeredWindowAttributes(Handle, 0, 192, LWA_ALPHA or LWA_COLORKEY);<br> Windows.SetParent(Handle, DesktopHWND);<br>end;<br>其中 DesktopHWND := FindWindow('Progman', nil);<br><br>执行后的结果是这样的:窗体被移到所有窗口的最下层,且变为完全透明,但是功能仍在。我在窗体上放置了一个TWebBrowser,在其位置上点右键仍然可以弹出IE菜单来。<br>单独执行 Windows.SetParent(Handle, DesktopHWND); 即可使窗体进入桌面,所有其它窗体都在它上面。但是一旦执行了前面两句(SetWindowLong和SetLayeredWindowAttributes),窗体就完全不见了。<br>请高人帮忙看看如何让窗体能嵌入桌面且保持Alpha效果?<br>谢谢!