Hallo alle zusammen.
Ich bin vermutlich nur zu blöd aber ich bekomme es einfach nicht "schön" hin.
Das kleine Script unter XP um das es geht nutzt die resources.au3 um alle benötigten Bilddaten in die EXE einzubinden.
Desweitern wollte ich die beim deaktivieren eines Controls entstehenden "leeren" Buttons mit einer grau hinterlegten Version des Bildes füllen. Und genau hier komme ich nicht weiter.
Der folgende Code erzeugt einen Dreidimensional erscheinenden Button.
#AutoIt3Wrapper_Res_File_Add=D:\ButtonLogo.bmp, rt_rcdata, BUTTON_BMP_1
#AutoIt3Wrapper_Res_File_Add=D:\ButtonDeaktiviert.bmp, rt_rcdata, BUTTON_BMP_2
#include <resources.au3> ; http://www.autoitscript.com/forum/topic/51103-resources-udf/
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Include <GuiButton.au3>
#include <GuiImageList.au3>
#include <StaticConstants.au3>
$mainwindow = GUICreate("Test", 400, 400, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
$button0 = GUICtrlCreateButton("", 110, 110, 180, 50)
_ResourceSetImageToCtrl($button0, "Button_BMP_1")
GUICtrlSetTip($button0, "Tipp")
...
Alles anzeigen
Wenn man diesen mit GUICtrlSetState($button0, $GUI_DISABLE) deaktiviert bekomme ich im Fenster einen leeren grauen Button.
Wenn ich die ImageList verwende:
#AutoIt3Wrapper_Res_File_Add=D:\ButtonLogo.bmp, rt_rcdata, BUTTON_BMP_1
#AutoIt3Wrapper_Res_File_Add=D:\ButtonDeaktiviert.bmp, rt_rcdata, BUTTON_BMP_2
#include <resources.au3> ; http://www.autoitscript.com/forum/topic/51103-resources-udf/
#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#Include <GuiButton.au3>
#include <GuiImageList.au3>
#include <StaticConstants.au3>
$mainwindow = GUICreate("Test", 400, 400, -1, -1, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
$Imagebutton = _GUIImageList_Create(180, 50, 5, 3)
$Img1=_ResourceGetAsBitmap("BUTTON_BMP_1",$RT_RCDATA)
$Img2=_ResourceGetAsBitmap("BUTTON_BMP_2",$RT_RCDATA)
_GUIImageList_Add($Imagebutton, $Img1)
_GUIImageList_Add($Imagebutton, $Img1)
_GUIImageList_Add($Imagebutton, $Img1)
_GUIImageList_Add($Imagebutton, $Img2)
_GUIImageList_Add($Imagebutton, $Img1)
_GUIImageList_Add($Imagebutton, $Img1)
$button0 = GUICtrlCreateButton("", 110, 110, 180, 50)
_GUICtrlButton_SetImageList($button0, $Imagebutton, 4)
GUICtrlSetTip($button0, "Tipp")
...
Alles anzeigen
Und diesen mit GUICtrlSetState($button0, $GUI_DISABLE) deaktiviert bekomme ich im Fenster den Button mit dem hinterlegten deaktiviert Bild.
Leider ist aber der Style des Buttons Flach.
Ich hätte ihn aber gerne wie im ersten Beispiel!
Ich habe mich schon mal an den _GUICtrlButton_SetStyle versucht, aber die zeigen keine gewünschte Wirkung.
Und die Idee dem Knopf jedesmal beim Deaktivieren das entsprechende andere Verfahren zuzuweisen habe ich als unpraktisch verworfen.
Gibt es da nicht eine "bessere" Lösung ?