关于窗口透明的问题。。
open事件:
SetWindowulong(Handle(This), GWL_EXSTYLE, WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle(This), 0, Char(255), LWA_COLORKEY)
全局:
Function ulong SetLayeredWindowAttributes(ulong hWnd , long crKey , Character bAlpha ,long dwFlags) library"user32.dll" alias for "SetLayeredWindowAttributes;Ansi"
FUNCTION ulong SetWindowulong(ulong hwnd,ulong nIndex,ulong dwNewLong) LIBRARY "user32.dll" ALIAS FOR "SetWindowLongA"
局部:
ULONG WS_EX_LAYERED = 524288
LONG LWA_COLORKEY = 1
LONG LWA_ALPHA = 2
ULONG GWL_EXSTYLE = -20
把背景弄成“黑色”可以实现透明的效果
但是窗口默认的不是黑色是“button face”我想知道需要改写什么达到透明的效果。。
[解决办法]
SetLayeredWindowAttributes的第二个参数是‘透明化颜色’,你改成你需要透明的颜色就可以了,窗体中可以改成这样
SetWindowulong(Handle(This), GWL_EXSTYLE, WS_EX_LAYERED)
SetLayeredWindowAttributes(Handle(This), this.BackColor, Char(255), LWA_COLORKEY)