AutoBert Posted October 7, 2022 Share Posted October 7, 2022 I want to make a Calendar App, therefor i played with some GDI+ scripts i found for creating a Gui for each day in month. Following script (Original was coded by @UEZ build 2015-05-13) seems to be the best to modify for my needs: expandcollapse popup#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global Const $hImage_Icon = _GDIPlus_ImageLoadFromFile("c:\Program Files (x86)\AutoIt3\Examples\GUI\merlin.gif") Global Const $ahGUI = _GDIPlus_CreateW10TrayWin("Done with AutoIt", "This little example was created with" & @CRLF & "AutoIT, using GDI+." &@CRLF & "Original coded by UEZ" & @CRLF & " Have fun. ;-)", _ $hImage_Icon, 10, 10, 144, 108) ; $hImage_Icon, @DesktopWidth - 370, @DesktopHeight - 150) WinSetTrans($ahGUI[0], "", 0xF4) GUISetState(@SW_SHOW, $ahGUI[0]) Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $ahGUI[1] _GDIPlus_ImageDispose($hImage_Icon) GUIDelete($ahGUI[0]) Exit EndSwitch Until False ;coded by UEZ build 2015-05-13 Func _GDIPlus_CreateW10TrayWin($sTitle, $sText, $hBmp_Icon = 0, $iGUIPosX = -1, $iGUIPosY = -1, $iW = 360, $iH = 100, $sFontName = "Palatino Linotype", $fFontSize = 8, $iBgColor = 0xFF1F1F1F, $iTitleColor = 0xFFF8F8F8, $iTextColor = 0xFFA0A0A0) Local Const $STM_SETIMAGE = 0x0172 Local Const $hGUI_W10TW = GUICreate($sTitle, $iW, $iH, $iGUIPosX, $iGUIPosY, $WS_POPUP) Local Const $iLable_Drag = GUICtrlCreateLabel("", 0, 0, $iW, 11, -1, $GUI_WS_EX_PARENTDRAG) Local Const $iPicBg_W10TW = GUICtrlCreatePic("", 0, 0, $iW, $iH) GUICtrlSetState(-1, $GUI_DISABLE) Local Const $iPicIcon_W10TW = GUICtrlCreatePic("", 2, 12, 32, 32) GUICtrlSetState(-1, $GUI_DISABLE) Local Const $iBtn_W10TW = GUICtrlCreateLabel("X", $iW + 25, 14, 10, 10, BitOR($SS_CENTER, $SS_SIMPLE)) ;absichtlich ausserhalb wird nicht benötigt GUICtrlSetFont(-1, 8, 200, 0, "Arial") GUICtrlSetBkColor(-1, BitAND($iBgColor, 0x00FFFFFF)) GUICtrlSetColor(-1, 0xF0F0F0) Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 2) _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 5) _GDIPlus_GraphicsClear($hGfx, $iBgColor) Local $hBmp_GDI Local $hPen_Border = _GDIPlus_PenCreate(0xFF484848) Local Const $hBrush_TextTitle = _GDIPlus_BrushCreateSolid($iTitleColor), $hBrush_Text = _GDIPlus_BrushCreateSolid($iTextColor) _GDIPlus_GraphicsDrawRect($hGfx, 0, 0, $iW - 1, $iH - 1, $hPen_Border) ;$sTitle = 'So 6. Aug. 2023' Local $tLayout_Title = _GDIPlus_RectFCreate(36, 13, $iW - 20, 16) Local Const $hFormat_Title = _GDIPlus_StringFormatCreate() Local Const $hFamily_Title = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont_Title = _GDIPlus_FontCreate($hFamily_Title, $fFontSize+2, 1) _GDIPlus_GraphicsDrawStringEx($hGfx, $sTitle, $hFont_Title, $tLayout_Title, $hFormat_Title, $hBrush_TextTitle) Local $tLayout_Text = _GDIPlus_RectFCreate(3, 33, $iW - 10, $iH - 15) Local Const $hFormat_Text = _GDIPlus_StringFormatCreate() Local Const $hFamily_Text = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont_Text = _GDIPlus_FontCreate($hFamily_Title, $fFontSize) _GDIPlus_GraphicsDrawStringEx($hGfx, ' ' & $sText, $hFont_Text, $tLayout_Text, $hFormat_Text, $hBrush_Text) ;the spaces are needed for protecting merlin from overlapping $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) _WinAPI_DeleteObject(GUICtrlSendMsg($iPicBg_W10TW, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _WinAPI_DeleteObject($hBmp_GDI) _GDIPlus_FontDispose($hFont_Title) _GDIPlus_FontFamilyDispose($hFamily_Title) _GDIPlus_StringFormatDispose($hFormat_Title) _GDIPlus_FontDispose($hFont_Text) _GDIPlus_FontFamilyDispose($hFamily_Text) _GDIPlus_StringFormatDispose($hFormat_Text) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_BrushDispose($hBrush_Text) _GDIPlus_BrushDispose($hBrush_TextTitle) _GDIPlus_PenDispose($hPen_Border) If $hBmp_Icon Then Local $aDim = _GDIPlus_ImageGetDimension($hBmp_Icon), $fScaleX, $fScaleY If $aDim[0] >= $aDim[1] Then $fScaleX = 32 / $aDim[0] $fScaleY = $fScaleX ElseIf $aDim[0] < $aDim[1] Then $fScaleY = 32 / $aDim[1] $fScaleX = $fScaleY EndIf Local Const $hBmp_tmp = _GDIPlus_ImageScale($hBmp_Icon, $fScaleX, $fScaleY) $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp_tmp) _WinAPI_DeleteObject(GUICtrlSendMsg($iPicIcon_W10TW, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _GDIPlus_BitmapDispose($hBmp_tmp) _WinAPI_DeleteObject($hBmp_GDI) EndIf Local $aGUI_W10TW[2] = [$hGUI_W10TW, $iBtn_W10TW] Return $aGUI_W10TW EndFunc ;==>_GDIPlus_CreateW10TrayWin it is a little bit modified (posioning, fontsizing, text) to see the posibilities. It's nearly perfect but enabling coloring each textline in different colour seems to be needed, as i will use this lines for extrainformation like BirthDay, holidays etc. But GDI is a nightmare of me, so i hope to get here a simple solution mfg (auto)Bert Link to comment Share on other sites More sharing options...
Solution AutoBert Posted October 7, 2022 Author Solution Share Posted October 7, 2022 I got one solution myself: expandcollapse popup#include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Array.au3> _GDIPlus_Startup() Global Const $hImage_Icon = _GDIPlus_ImageLoadFromFile("c:\Program Files (x86)\AutoIt3\Examples\GUI\merlin.gif") Global Const $ahGUI = _GDIPlus_CreateW10TrayWin("Done with AutoIt", "This little example" & @CRLF & "was created with" & @CRLF & "AutoIT, using GDI+." &@CRLF & "Original coded by UEZ" & @CRLF & " Have fun. ;-)", _ $hImage_Icon, 10, 10, 144, 108) ; $hImage_Icon, @DesktopWidth - 370, @DesktopHeight - 150) WinSetTrans($ahGUI[0], "", 0xF4) GUISetState(@SW_SHOW, $ahGUI[0]) ConsoleWrite(WinGetTitle($ahGUI) & @crlf) Do Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $ahGUI[1] _GDIPlus_ImageDispose($hImage_Icon) GUIDelete($ahGUI[0]) Exit EndSwitch Until False ;Original coded by UEZ build 2015-05-13 ;modified autoBert 2022-10-07 Func _GDIPlus_CreateW10TrayWin($sTitle, $sText, $hBmp_Icon = 0, $iGUIPosX = -1, $iGUIPosY = -1, $iW = 360, $iH = 100, $sFontName = "Palatino Linotype", $fFontSize = 8, $iBgColor = 0xFF1F1F1F, $iTitleColor = 0xFFF8F8F8, $iTextColor = 0xFFA0A0A0) Local Const $STM_SETIMAGE = 0x0172 Local Const $hGUI_W10TW = GUICreate($sTitle, $iW, $iH, $iGUIPosX, $iGUIPosY, $WS_POPUP) Local Const $iLable_Drag = GUICtrlCreateLabel("", 0, 0, $iW, 11, -1, $GUI_WS_EX_PARENTDRAG) Local Const $iPicBg_W10TW = GUICtrlCreatePic("", 0, 0, $iW, $iH) GUICtrlSetState(-1, $GUI_DISABLE) Local Const $iPicIcon_W10TW = GUICtrlCreatePic("", 2, 12, 32, 32) GUICtrlSetState(-1, $GUI_DISABLE) Local Const $iBtn_W10TW = GUICtrlCreateLabel("X", $iW + 25, 14, 10, 10, BitOR($SS_CENTER, $SS_SIMPLE)) ;absichtlich ausserhalb wird nicht benötigt GUICtrlSetFont(-1, 8, 200, 0, "Arial") GUICtrlSetBkColor(-1, BitAND($iBgColor, 0x00FFFFFF)) GUICtrlSetColor(-1, 0xF0F0F0) Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 2) _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 5) _GDIPlus_GraphicsClear($hGfx, $iBgColor) Local $hBmp_GDI Local $hPen_Border = _GDIPlus_PenCreate(0xFF484848) Local Const $hBrush_TextTitle = _GDIPlus_BrushCreateSolid($iTitleColor), $hBrush_Text = _GDIPlus_BrushCreateSolid($iTextColor) _GDIPlus_GraphicsDrawRect($hGfx, 0, 0, $iW - 1, $iH - 1, $hPen_Border) ;$sTitle = 'So 6. Aug. 2023' Local $tLayout_Title = _GDIPlus_RectFCreate(36, 13, $iW - 20, 16) Local Const $hFormat_Title = _GDIPlus_StringFormatCreate() Local Const $hFamily_Title = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont_Title = _GDIPlus_FontCreate($hFamily_Title, $fFontSize+2, 1) _GDIPlus_GraphicsDrawStringEx($hGfx, $sTitle, $hFont_Title, $tLayout_Title, $hFormat_Title, $hBrush_TextTitle) Local $aSplit = StringSplit($sText, @CRLF, 3) _ArrayDisplay($aSplit) Local $tLayout_Text1 = _GDIPlus_RectFCreate(3, 32, $iW - 10, $iH - 15) Local Const $hFormat_Text = _GDIPlus_StringFormatCreate() Local Const $hFamily_Text = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont_Text = _GDIPlus_FontCreate($hFamily_Title, $fFontSize) _GDIPlus_GraphicsDrawStringEx($hGfx, ' ' & $aSplit[0], $hFont_Text, $tLayout_Text1, $hFormat_Text, $hBrush_Text) Local $tLayout_Text2 = _GDIPlus_RectFCreate(3, 51, $iW - 10, $iH - 35) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFFFF0000) _GDIPlus_GraphicsDrawStringEx($hGfx, $aSplit[1], $hFont_Text, $tLayout_Text2, $hFormat_Text, $hBrush_Text) Local $tLayout_Text3 = _GDIPlus_RectFCreate(3, 70, $iW - 10, $iH - 55) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFF00FF00) _GDIPlus_GraphicsDrawStringEx($hGfx, $aSplit[2], $hFont_Text, $tLayout_Text3, $hFormat_Text, $hBrush_Text) Local $tLayout_Text4 = _GDIPlus_RectFCreate(3, 89, $iW - 10, $iH - 75) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFF0000FF) _GDIPlus_GraphicsDrawStringEx($hGfx, $aSplit[4], $hFont_Text, $tLayout_Text4, $hFormat_Text, $hBrush_Text) $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) _WinAPI_DeleteObject(GUICtrlSendMsg($iPicBg_W10TW, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _WinAPI_DeleteObject($hBmp_GDI) _GDIPlus_FontDispose($hFont_Title) _GDIPlus_FontFamilyDispose($hFamily_Title) _GDIPlus_StringFormatDispose($hFormat_Title) _GDIPlus_FontDispose($hFont_Text) _GDIPlus_FontFamilyDispose($hFamily_Text) _GDIPlus_StringFormatDispose($hFormat_Text) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_BrushDispose($hBrush_Text) _GDIPlus_BrushDispose($hBrush_TextTitle) _GDIPlus_PenDispose($hPen_Border) If $hBmp_Icon Then Local $aDim = _GDIPlus_ImageGetDimension($hBmp_Icon), $fScaleX, $fScaleY If $aDim[0] >= $aDim[1] Then $fScaleX = 32 / $aDim[0] $fScaleY = $fScaleX ElseIf $aDim[0] < $aDim[1] Then $fScaleY = 32 / $aDim[1] $fScaleX = $fScaleY EndIf Local Const $hBmp_tmp = _GDIPlus_ImageScale($hBmp_Icon, $fScaleX, $fScaleY) $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp_tmp) _WinAPI_DeleteObject(GUICtrlSendMsg($iPicIcon_W10TW, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _GDIPlus_BitmapDispose($hBmp_tmp) _WinAPI_DeleteObject($hBmp_GDI) EndIf Local $aGUI_W10TW[2] = [$hGUI_W10TW, $iBtn_W10TW] Return $aGUI_W10TW EndFunc ;==>_GDIPlus_CreateW10TrayWin Link to comment Share on other sites More sharing options...
Dan_555 Posted October 7, 2022 Share Posted October 7, 2022 (edited) I could offer you this: Edit: Here is an example script to display colorful lines #include "GDIP_AsciiGamework_include.au3" ;;Startup and en ding Initialize(320, 200) ;Initialize GDI and Fonts GameDemoTemplate() ;Game Loop CleanUp() ;Stop Gdi and free the ressources Func GameDemoTemplate() $guiQuit = 0 ;Always reset the $guiQuit to 0 While Delay(140) = 0 CLS("000000") $co = "" $co1 = "ff000000ff000000ffaabbccddee00006060303030206080806020554433" Font("Arial", 15) $z=0 For $x = 0 To 9 For $y = 0 To 3 $co = StringMid($co1, ($z*6)+1 , 6) $z=$z+1 if $z>9 then $z=0 color($co) Print("Color", $y * 58, $x * 16) Next Next ; If Delay(500) = 1 Then ExitLoop 2 ;Alternative: Frame limiter - Exit the "for" and "while" loops when the close button (x) has been pressed. WEnd EndFunc ;==>GameDemoTemplate Edited October 7, 2022 by Dan_555 Some of my script sourcecode Link to comment Share on other sites More sharing options...
AutoBert Posted October 8, 2022 Author Share Posted October 8, 2022 Now i have changed to make a control instead of a GUI: expandcollapse popup#include-once #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <Array.au3> #include <Date.au3> ;#include <_GetSunRiseAndSunSet.au3> _GDIPlus_Startup() Global Const $__g_hCalLeaf_Image = _GDIPlus_ImageLoadFromFile("c:\Program Files (x86)\AutoIt3\Examples\GUI\merlin.gif") ;#cs test() Func test() Local $hMain, $sDate Opt('GUIOnEventMode', 1) $hMain = GUICreate('Kalender: ' & _DateToMonth(@MON, $DMW_LOCALE_LONGNAME) & ' ' & @YEAR) GUISetOnEvent($GUI_EVENT_CLOSE, '_CalLeaf_BitmapDispose') GUISetBkColor(0xFF1F1F1F) $sDate = StringFormat('%04i/%02i/%02i', @YEAR, @MON, @MDAY) ;;ConsoleWrite('rID: ' & $iID & @TAB & $sDate & @CRLF) _CreateCalLeaf($sDate, 'Zeile1|Zeile2|3|Zeile 4', 180, 155) ;GUICtrlSetOnEvent(-1, '_DateClick') GUISetState() While 1 Sleep(5000) WEnd EndFunc ;==>test ;#ce OnAutoItExitRegister('_CalLeaf_BitmapDispose') ;Original coded by UEZ build 2015-05-13 ;modified autoBert 2022-10-07 Func _CreateCalLeaf($sTitle, $aText, $iGUIPosX = -1, $iGUIPosY = -1, $iW = 168, $iH = 108, $sFontName = "Palatino Linotype", $fFontSize = 8, $iBgColor = 0xFF1F1F1F, $iTitleColor = 0xFFF8F8F8, $iTextColor = 0xFFA0A0A0, $hParent = 0) If Not IsArray($aText) Then $aText = StringSplit($aText & '|||', '|', 3) ;ConsoleWrite($iGUIPosX & '|' & $iGUIPosY & @TAB & $iW & '|' & $iH & @CRLF) Local $aDate, $aTime, $bIsDate = False _DateTimeSplit($sTitle, $aDate, $aTime) If Not @error Then $bIsDate = True ;Local $aSun = StringSplit(StringReplace(_GetSunriseAndSunset($iLat, $iLon, $iTimezone, $aDate[1], $aDate[2], $aDate[3]), 'Uhr', ''),' - ', 3) Local $aSun = StringSplit('07:31 - 18:45',' - ', 3) Local $iWeekday = _DateToDayOfWeek($aDate[1], $aDate[2], $aDate[3]) Local $sMonth = _DateToMonth($aDate[2], $DMW_LOCALE_SHORTNAME) Local $sDay = StringFormat('%s %2i. %s. %04i', _DateDayOfWeek($iWeekday, $DMW_LOCALE_ShortNAME), $aDate[3], $sMonth, $aDate[1]) EndIf ;ConsoleWrite($sDay & @CRLF) Local Const $STM_SETIMAGE = 0x0172 Local $idCalLeaf = GUICtrlCreatePic("", $iGUIPosX, $iGUIPosY, $iW, $iH, $SS_NOTIFY) ;, $WS_POPUP, -1, $hParent) Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH) Local Const $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetSmoothingMode($hGfx, 4) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 2) _GDIPlus_GraphicsSetTextRenderingHint($hGfx, 5) _GDIPlus_GraphicsClear($hGfx, $iBgColor) Local $hBmp_GDI Local $hPen_Border = _GDIPlus_PenCreate(0xFF484848) Local Const $hBrush_TextTitle = _GDIPlus_BrushCreateSolid($iTitleColor), $hBrush_Text = _GDIPlus_BrushCreateSolid($iTextColor) _GDIPlus_GraphicsDrawRect($hGfx, 0, 0, $iW - 1, $iH - 1, $hPen_Border) Local $tLayout_Title = _GDIPlus_RectFCreate(36, 5, $iW - 36, 16) Local Const $hFormat_Title = _GDIPlus_StringFormatCreate() Local Const $hFamily_Title = _GDIPlus_FontFamilyCreate($sFontName) Local Const $hFont_Title = _GDIPlus_FontCreate($hFamily_Title, $fFontSize + 2, 1) If $bIsDate Then $sTitle = $sDay _GDIPlus_GraphicsDrawStringEx($hGfx, $sTitle, $hFont_Title, $tLayout_Title, $hFormat_Title, $hBrush_TextTitle) Local $tLayout_Text1 = _GDIPlus_RectFCreate(3, 32, $iW - 10, 20) Local Const $hFormat_Text = _GDIPlus_StringFormatCreate() Local Const $hFamily_Text = _GDIPlus_FontFamilyCreate($sFontName) Local $hFont_Text = _GDIPlus_FontCreate($hFamily_Title, $fFontSize) _GDIPlus_GraphicsDrawStringEx($hGfx, $aText[0], $hFont_Text, $tLayout_Text1, $hFormat_Text, $hBrush_Text) Local $tLayout_Text2 = _GDIPlus_RectFCreate(3, 51, $iW - 10, 20) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFFFF0000) _GDIPlus_GraphicsDrawStringEx($hGfx, $aText[1], $hFont_Text, $tLayout_Text2, $hFormat_Text, $hBrush_Text) Local $tLayout_Text3 = _GDIPlus_RectFCreate(3, 70, $iW - 10, 20) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFF00FF00) _GDIPlus_GraphicsDrawStringEx($hGfx, $aText[2], $hFont_Text, $tLayout_Text3, $hFormat_Text, $hBrush_Text) Local $tLayout_Text4 = _GDIPlus_RectFCreate(3, 89, $iW - 10, 20) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFF0000FF) _GDIPlus_GraphicsDrawStringEx($hGfx, $aText[3], $hFont_Text, $tLayout_Text4, $hFormat_Text, $hBrush_Text) Local $tLayout_SR = _GDIPlus_RectFCreate(1, 1, 32, 32) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFFDAA520) $hFont_Text = _GDIPlus_FontCreate($hFamily_Title, $fFontSize - 1) _GDIPlus_GraphicsDrawStringEx($hGfx, $aSun[0], $hFont_Text, $tLayout_SR, $hFormat_Text, $hBrush_Text) Local $tLayout_SS = _GDIPlus_RectFCreate($iW -32, 1, 32, 32) _GDIPlus_BrushSetSolidColor($hBrush_Text, 0xFFFFD700) $hFont_Text = _GDIPlus_FontCreate($hFamily_Title, $fFontSize - 1) _GDIPlus_GraphicsDrawStringEx($hGfx, $aSun[1], $hFont_Text, $tLayout_SS, $hFormat_Text, $hBrush_Text) $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBitmap) _WinAPI_DeleteObject(GUICtrlSendMsg($idCalLeaf, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _WinAPI_DeleteObject($hBmp_GDI) _GDIPlus_FontDispose($hFont_Title) _GDIPlus_FontFamilyDispose($hFamily_Title) _GDIPlus_StringFormatDispose($hFormat_Title) _GDIPlus_FontDispose($hFont_Text) _GDIPlus_FontFamilyDispose($hFamily_Text) _GDIPlus_StringFormatDispose($hFormat_Text) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_BrushDispose($hBrush_Text) _GDIPlus_BrushDispose($hBrush_TextTitle) _GDIPlus_PenDispose($hPen_Border) #cs If $hBmp_Icon Then Local $aDim = _GDIPlus_ImageGetDimension($hBmp_Icon), $fScaleX, $fScaleY If $aDim[0] >= $aDim[1] Then $fScaleX = 32 / $aDim[0] $fScaleY = $fScaleX ElseIf $aDim[0] < $aDim[1] Then $fScaleY = 32 / $aDim[1] $fScaleX = $fScaleY EndIf Local Const $hBmp_tmp = _GDIPlus_ImageScale($hBmp_Icon, $fScaleX, $fScaleY) $hBmp_GDI = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hBmp_tmp) ;_WinAPI_DeleteObject(GUICtrlSendMsg($idCalLeaf, $STM_SETIMAGE, $IMAGE_BITMAP, $hBmp_GDI)) _GDIPlus_BitmapDispose($hBmp_tmp) _WinAPI_DeleteObject($hBmp_GDI) EndIf #ce Return $idCalLeaf EndFunc ;==>_CreateCalLeaf Func _CalLeaf_BitmapDispose() _GDIPlus_BitmapDispose($__g_hCalLeaf_Image) _GDIPlus_Shutdown() ConsoleWrite('Disposed!' & @CRLF) Exit EndFunc ;==>_CalLeaf_BitmapDispose This version makes problems with the merlin, so there is no Image drawing possible. But i'm still searching for drawing Icons and Text with GDI+ on a "GUICtrlCreatePic" created control. mfg (auto)Bert Link to comment Share on other sites More sharing options...
ahmet Posted October 9, 2022 Share Posted October 9, 2022 If you want to draw to a control you created with GuiCtrlCreate...() try with _GDIPlus_GraphicsCreateFromHWND() and the handle you get with GUICtrlGetHandle(). Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now