Aloha!
Mir ist grade aufgefallen, dass Buttons die sich auf Child - Fenstern mit LayeredWindowsAttributes befinden einen merkwürdigen schwarzen Rand haben =>
[Blockierte Grafik: http://img3.imagebanana.com/img/kqhkgdy7/blackborder.gif]
Hier das Beispielscript:
Spoiler anzeigen
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
Opt("GuiOnEventMode",1)
Local $Col = PixelGetColor(55,200)
$MainGui= GUICreate("Macromat", 147, 123,-1,-1, $WS_POPUP)
GuiSetBkColor(0x000000)
;~ _API_SetLayeredWindowAttributes($MainGui,$Col,255)
$BodyGui= GUICreate("BodyGui", 147, 123,-3, -3, $WS_POPUP, BitOR($WS_EX_CONTROLPARENT, $WS_EX_MDICHILD,$WS_EX_LAYERED), $MainGui)
$Ex_Button = GUICtrlCreateButton("Exit", 22, 55, 100, 25)
GuiCtrlSetOnEvent(-1, "Terminate")
_API_SetLayeredWindowAttributes($BodyGui,$Col,255)
GUISetState(@SW_SHOW, $MainGui)
GUISetState(@SW_SHOW, $BodyGui)
While 1
sleep(100)
WEnd
Func _API_SetLayeredWindowAttributes($hwnd, $i_transcolor, $Transparency = 255, $isColorRef = False)
Local Const $AC_SRC_ALPHA = 1
Local Const $ULW_ALPHA = 2
Local Const $LWA_ALPHA = 0x2
Local Const $LWA_COLORKEY = 0x1
If Not $isColorRef Then
$i_transcolor = Hex(String($i_transcolor), 6)
$i_transcolor = Execute('0x00' & StringMid($i_transcolor, 5, 2) & StringMid($i_transcolor, 3, 2) & StringMid($i_transcolor, 1, 2))
EndIf
Local $Ret = DllCall("user32.dll", "int", "SetLayeredWindowAttributes", "hwnd", $hwnd, "long", $i_transcolor, "byte", $Transparency, "long", $LWA_COLORKEY + $LWA_ALPHA)
Select
Case @error
Return SetError(@error, 0, 0)
Case $Ret[0] = 0
Return SetError(4, 0, 0)
Case Else
Return 1
EndSelect
EndFunc ;==>_API_SetLayeredWindowAttributes
Func Terminate()
Exit
EndFunc
Hat da jemand eine Idee, wie man den Rand wegbekommt?