Hi Community,
ich möchte mit GDI ein Rechteck zeichnen, das wenn man mit der Maus darüberfährt, einen roten Rand bekommt.
Normal:
[Blockierte Grafik: http://johannes-log.spacequadrat.de/1.png]
Hover:
[Blockierte Grafik: http://johannes-log.spacequadrat.de/2.png]
Da ich in GDI noch eine Null bin, wird mein folgender Quellcode vielleicht bei einigen "Augenkrebs" hervorrufen. Ich bitte dies zu entschuldigen
Spoiler anzeigen
#include <GUICtrlSetOnHover_UDF.au3>
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <StaticConstants.au3>
Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$GUIMain = GUICreate("Test", 570, 200)
GUISetOnEvent(-3, "Quit")
$hWnd = WinGetHandle("Test")
$hDC = _WinAPI_GetWindowDC($hWnd)
GUISetState()
_GDIPlus_Startup()
$DUMMY = GUICtrlCreateLabel("", 10, 10, 100, 100)
GUICtrlSetBkColor(-1, -2)
$hGraphic2 = _GDIPlus_GraphicsCreateFromHDC($hDC)
_GDIPlus_BrushCreateSolid(0x000BB)
_GDIPlus_GraphicsFillRect($hGraphic2, 10, 10, 100, 100)
_GUICtrl_SetOnHover($DUMMY, "_Hover_Proc", "_Leave_Hover_Func")
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(100)
WEnd
Func _Hover_Proc($iCtrlID, $iParam)
_GDIPlus_GraphicsClear($hGraphic2, 0xFF0000FF)
EndFunc ;==>_Hover_Proc
Func _Leave_Hover_Func($iCtrlID)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDispose($hGraphic2)
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Leave_Hover_Func
[/autoit] [autoit][/autoit] [autoit]Func Quit()
_GDIPlus_Shutdown()
Exit
EndFunc ;==>Quit