Hallo. Es treibt meinen inneren Monk in den Wahnsinn, dass ich es nicht hinbekomme, die Farbe eines GUICtrlCreateProgress() zu ändern. Ich lese immer wieder, das es im XP-Stil nicht funktioniert, aber ich nutze Win10.
Ist das bei euch auch so, dass das Schweineding einfach immer grün bleibt???
Habe hier mal ein sehr kurzes Beispielscript.
Da ist 2x das selbe GUI, nur in verschiedenen Versionen.
Gui1 ist die aktuell verwendete. Weil das mit dem Einfärben von Titelleiste, ListviewHeader und Progress einfach nicht will..
Gui2 hab ich also verworfen, dennoch hab ich es dabei, weil mich da etwas stutzig macht. Der Progress... wenn das GUI in die Taskleiste minimiert und wiederhergestellt wird, ist der Progress komplett schwarz?! Warum ist das so?
Spoiler anzeigen
AutoIt
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <GuiListView.au3>
#include <WinAPITheme.au3>
Opt('TrayAutoPause', 0)
Global $hGui, $hBtn_Exit, $hBtn_Down, $hBtn_Start, $hStatus, $idProgress, $idListview
_hGui1()
_hGui2()
Func _hGui1()
$hGui = GUICreate("stark geschrumpftes Codebeispiel", 1000, 525, -1, -1, $WS_POPUPWINDOW)
GUISetBkColor(0x000000, $hGui)
GUISetFont(12, 400, Default, "Source Code Pro")
GUICtrlCreateLabel("Beispiel 1", 300, -5, 170, 30, $SS_CENTER, -1)
GUICtrlSetFont(-1, 16, 800, "", "Segoe Print")
GUICtrlSetColor(-1, 0xFF0000)
$hBtn_Exit = GUICtrlCreateButton("X", 975, 0, 25, 25)
GUICtrlSetBkColor($hBtn_Exit, 0xFF0000)
GUICtrlSetFont($hBtn_Exit, 12, 900)
$hBtn_Down = GUICtrlCreateButton("_", 950, 0, 25, 25)
GUICtrlSetBkColor($hBtn_Down, 0xFF0000)
GUICtrlSetFont($hBtn_Down, 12, 900)
$hBtn_Start = GUICtrlCreateButton("Start", 5, 427, 100, 28)
GUICtrlSetBkColor($hBtn_Start, 0xFF0000)
GUICtrlSetFont($hBtn_Start, 10)
$idProgress = GUICtrlCreateProgress(0, 515, 1000, 5, $PBS_SMOOTH)
GUICtrlSetColor(-1, 0xFF0000) ; rot
GUICtrlSetBkColor(-1, 0x000000) ; schwarz
$idListview = _GUICtrlListView_Create($hGui, "Gefundene Dateien: " & "12" & "|Zieldatei", 2, 27, 996, 396, BitOR($LVS_NOCOLUMNHEADER, $LVS_REPORT, $LVS_SHOWSELALWAYS))
_GUICtrlListView_SetColumnWidth($idListview, 0, 500)
_GUICtrlListView_SetColumnWidth($idListview, 1, 470)
_GUICtrlListView_SetBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
_GUICtrlListView_SetTextColor($idListview, _WinAPI_SwitchColor(0xFFFFFF))
_GUICtrlListView_SetTextBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
_GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))
_GUICtrlListView_EnableGroupView($idListview)
GUIRegisterMsg($WM_NCHITTEST, "_WM_FENSTER_BEWEGEN")
GUISetState(@SW_SHOW)
While 1
$iMsg = GUIGetMsg()
Switch $iMsg
Case $hBtn_Exit
GUIDelete($hGui)
ExitLoop
Case $hBtn_Down
GUISetState(@SW_MINIMIZE)
Case $hBtn_Start
For $i = 1 to 100
GUICtrlSetData($idProgress, $i) ; Demo Progress
Sleep(50)
Next
EndSwitch
WEnd
EndFunc ;==>_hGui1
Func _hGui2()
$hGui = GUICreate("stark geschrumpftes Codebeispiel", 1000, 525, -1, -1 )
GUISetBkColor(0x000000, $hGui)
GUISetFont(12, 400, Default, "Source Code Pro")
GUICtrlCreateLabel("Beispiel 2", 300, -5, 170, 30, $SS_CENTER, -1)
GUICtrlSetFont(-1, 16, 800, "", "Segoe Print")
GUICtrlSetColor(-1, 0xFF0000)
$hBtn_Start = GUICtrlCreateButton("Start", 5, 427, 100, 28)
GUICtrlSetBkColor($hBtn_Start, 0xFF0000)
GUICtrlSetFont($hBtn_Start, 10)
$hStatus = _GUICtrlStatusBar_Create($hGui)
_GUICtrlStatusBar_SetMinHeight($hStatus, 10)
_WinAPI_SetWindowTheme($hStatus, "", "")
_GUICtrlStatusBar_SetBkColor($hStatus, 0x000000)
$idProgress = GUICtrlCreateProgress(0, 515, 1000, 5, $PBS_SMOOTH)
GUICtrlSetColor($hStatus, 0xFF0000) ; rot
GUICtrlSetColor($idProgress, 0xFF0000) ; rot
GUICtrlSetBkColor($hStatus, 0xFF0000) ; rot
GUICtrlSetBkColor($idProgress, 0xFF0000) ; rot
_GUICtrlStatusBar_EmbedControl($hStatus, 0, GUICtrlGetHandle($idProgress))
$idListview = _GUICtrlListView_Create($hGui, "Gefundene Dateien: " & "12" & "|Zieldatei", 2, 27, 996, 396, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS))
_GUICtrlListView_SetColumnWidth($idListview, 0, 500)
_GUICtrlListView_SetColumnWidth($idListview, 1, 470)
_GUICtrlListView_SetBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
_GUICtrlListView_SetTextColor($idListview, _WinAPI_SwitchColor(0xFFFFFF))
_GUICtrlListView_SetTextBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
_GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))
_GUICtrlListView_EnableGroupView($idListview)
GUIRegisterMsg($WM_NCHITTEST, "_WM_FENSTER_BEWEGEN")
GUISetState(@SW_SHOW)
While 1
$iMsg = GUIGetMsg()
Switch $iMsg
Case -3
GUIDelete($hGui)
ExitLoop
Case $hBtn_Start
For $i = 1 to 100
GUICtrlSetData($idProgress, $i) ; Demo Progress
Sleep(50)
Next
EndSwitch
WEnd
EndFunc ;==>_hGui2
Func _WM_FENSTER_BEWEGEN($hWnd, $Msg, $wParam, $lParam)
Local $iResult = DllCall("user32.dll", "int", "DefWindowProc", "hwnd", $hWnd, "int", $Msg, "int", $wParam, "int", $lParam)
If @error Then Return $GUI_RUNDEFMSG
If $iResult[0] = $HTCLIENT Then Return $HTCAPTION
Return $iResult[0]
EndFunc ;==>_WM_FENSTER_BEWEGEN
;~ ; EndOfFile
Alles anzeigen
