Kann ich mit autoit auch so etwas machen?
[Blockierte Grafik: http://deepred.lima-city.de/Bilder/bAR.jpg]
Kann ich mit autoit auch so etwas machen?
[Blockierte Grafik: http://deepred.lima-city.de/Bilder/bAR.jpg]
Für was gibt es wohl die _GUICtrlRebar-Funktionen!
auch in blau?
Hi,
hier das Bsp. aus der Hilfe in CornFlowerBlue.
Allerdings gelten für ReBar nicht die tatsächlichen Farbwerte. Das System ist mir noch nicht klar. Um CornFlowerBlue anzuzeigen, muß der Hex-Wert von Coral verwendet werden. Die Hilfe gibt leider keine Auskunft warum beim Festlegen der Farbe: Int(Hexwert) gesetzt werden muß. Wird nur der Hexwert übergeben ist das Ergebnis meist eine andere Farbe. Aber z.B. DarkMagenta kann direkt als Hexwert übergeben werden und wird richtig angezeigt.
Vielleicht ist ja ein Farbenversteher unter uns, der Aufklärung bringen kann.
#include <GuiConstantsEx.au3>
#include <GuiReBar.au3>
#include <GuiToolBar.au3>
Opt("MustDeclareVars", 1)
[/autoit] [autoit][/autoit] [autoit]Global $iMemo
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $hgui, $btnExit, $hReBar, $hToolbar, $hInput
Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp
$hgui = GUICreate("Rebar", 400, 396, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX))
GUISetBkColor(0x6495ED)
; create the rebar control
$hReBar = _GUICtrlReBar_Create($hgui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))
$iMemo = GUICtrlCreateEdit("", 2, 100, 396, 250, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 10, 400, 0, "Courier New")
; create a toolbar to put in the rebar
$hToolbar = _GUICtrlToolBar_Create($hgui, BitOR($TBSTYLE_FLAT, $CCS_NORESIZE, $CCS_NOPARENTALIGN))
; Add standard system bitmaps
Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar)
Case 0
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
Case 2
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
EndSwitch
; Add buttons
_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)
; create a input box to put in the rebar
$hInput = GUICtrlCreateInput("Input control", 0, 0, 120, 20)
;add band containing the control
_GUICtrlReBar_AddBand($hReBar, GUICtrlGetHandle($hInput), 120, 200, "Name:")
; add band containing the control to the begining of rebar
_GUICtrlReBar_AddToolBarBand($hReBar, $hToolbar, "", 0)
_GUICtrlRebar_SetBandBackColor($hReBar, 0, Int(0xFF7F50)) ; CornFlowerBlue wird gezeigt, HEX-Wert von Coral!!
_GUICtrlRebar_SetBandBackColor($hReBar, 1, Int(0xFF7F50))
_GUICtrlRebar_SetBandForeColor($hReBar, 1, Int(0xFFFFFF))
$btnExit = GUICtrlCreateButton("Exit", 150, 360, 100, 25)
GUICtrlSetState($btnExit, $GUI_DEFBUTTON)
GUICtrlSetState($btnExit, $GUI_FOCUS)
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $btnExit
Exit
EndSwitch
WEnd
EndFunc ;==>_Main
Die Lösung ist eigentlich ganz einfach, die Farbe beim Rebar wird im BGR-Format angegeben, war früher auch das Standard-Format von AutoIt! Wenn man also wie im obigen Beispiel die GUI auf die Farbe GUISetBkColor(0x6495ED) ändert muss man beim Rebar die Farbe genau umgekehrt angeben _GUICtrlRebar_SetBandBackColor($hReBar, 0, 0xED9564)!
Aha, Danke.
Nur diese Info sollte doch eigentlich auch in die Hilfe zur Funktion.
Oder den Programmierern melden das es mit
[autoit]Opt("ColorMode", 0) ;0=RRGGBB color, 1=BBGGRR color
[/autoit]verknüpft wird!
Moin,
cool ich wusste garnet das es auch bunte Menubars gibt. Wieder was gelernt ohne danach zu suchen. Ich mag dieses Forum einfach.
MfG
Der_Doc
Funktioniert bei mir aber nicht Ich kreig das irgendwie nicht hin
Nicht so viel Informationen auf einmal!
Was funktioniert nicht (Quellcode wäre hilfreich)?
Das mit der blauen rebar...
Ein Smilie sagt mehr als tausend Worte!
[Blockierte Grafik: http://smilie-land.de/t/e-h/hexe/hexe0008.gif]
wie mache ich jetzt die rebar blau. Und wie wird es Orange wen man mit dem mauszeiger draufhält
Das war doch in meinem Bsp. zu sehen.
Mit _GUICtrlRebar_SetBandBackColor($RebarID, $Index, 'Farbe als BGR').
Um einen Farbwechsel zu erreichen, wenn du mit der Maus darüberfährst brauchst du ein Hover-Funktion. Mußt du mal im EN-Forum suchen.
Die Farben lassen sich bei XP im Modern-Style nicht ändern! Diese werden immer vom Windows-Theme bestimmt.
Man kann aber bei der Erstellung das theme abschalten, dann ist die Farbe änderbar:
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
$hReBar = _GUICtrlReBar_Create($hgui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS,$CCS_NODIVIDER))
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 3)
So sieht die Gui aber merkwürdig aus
[Blockierte Grafik: http://download.lima-city.de/deepred/tESTGUI.png]
Die Reihenfolge ist wichtig:
$hgui = GUICreate("Rebar", 400, 396, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX))
; create the rebar control
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 0)
$hReBar = _GUICtrlReBar_Create($hgui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))
DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 3)
ach so. und wie bekomme ich eine schöne rebar wie diese hier hin.?
[Blockierte Grafik: http://deepred.lima-city.de/Bilder/bAR.jpg]
So, mit einem Hintergrundbild:
#include <GuiConstantsEx.au3>
#include <GuiReBar.au3>
#include <GuiToolBar.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
Opt("MustDeclareVars", 1)
[/autoit] [autoit][/autoit] [autoit]$Debug_RB = False
[/autoit] [autoit][/autoit] [autoit]Global $iMemo, $hImage, $ImageFileName = _CreateImage()
[/autoit] [autoit][/autoit] [autoit]_Main()
[/autoit] [autoit][/autoit] [autoit]Func _Main()
Local $hgui, $btnExit, $hReBar, $hToolbar, $hInput
Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp
$hgui = GUICreate("Rebar", 400, 396, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX))
; create the rebar control
$hReBar = _GUICtrlReBar_Create($hgui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))
$iMemo = GUICtrlCreateEdit("", 2, 100, 396, 250, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 10, 400, 0, "Courier New")
; create a toolbar to put in the rebar
$hToolbar = _GUICtrlToolBar_Create($hgui, BitOR($TBSTYLE_FLAT, $CCS_NORESIZE, $CCS_NOPARENTALIGN))
_GUICtrlToolbar_SetStyleTransparent($hToolbar,1)
_GUICtrlToolbar_SetColorScheme($hToolbar,0xFF000000,0xFF000000)
; Add standard system bitmaps
Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar)
Case 0
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
Case 2
_GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
EndSwitch
; Add buttons
_GUICtrlToolbar_AddButton($hToolbar, $idNew, $STD_FILENEW)
_GUICtrlToolbar_AddButton($hToolbar, $idOpen, $STD_FILEOPEN)
_GUICtrlToolbar_AddButton($hToolbar, $idSave, $STD_FILESAVE)
_GUICtrlToolbar_AddButtonSep($hToolbar)
_GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)
Local $BandGUI = GUICreate("",120,20,0,0,$WS_CHILD+$WS_POPUP,0,$hReBar)
;~ GUISetBkColor(0xBBBB00)
GUICtrlCreatePic($ImageFileName,0,0,120,20,0)
GUICtrlSetResizing(-1,$GUI_DOCKBORDERS)
GUICtrlSetState(-1,$GUI_DISABLE)
; create a input box to put in the rebar
$hInput = GUICtrlCreateInput("Input control", 0, 0, 100, 20)
GUICtrlCreateButton("OK",100,0,20,20)
GUISwitch($hgui)
;add band containing the control
_GUICtrlReBar_AddBand($hReBar, $BandGUI, 120, 140, "Name:")
; add band containing the control to the begining of rebar
_GUICtrlReBar_AddToolBarBand($hReBar, $hToolbar, "", 0)
$btnExit = GUICtrlCreateButton("Exit", 150, 360, 100, 25)
GUICtrlSetState($btnExit, $GUI_DEFBUTTON)
GUICtrlSetState($btnExit, $GUI_FOCUS)
; SetImage
[/autoit] [autoit][/autoit] [autoit]$hImage = _WinAPI_LoadImage(0,$ImageFileName,$IMAGE_BITMAP,0,0,$LR_DEFAULTSIZE+$LR_LOADFROMFILE)
For $x = 0 To _GUICtrlRebar_GetBandCount($hReBar) - 1
_GUICtrlRebar_SetBandInfo($hReBar,$x,$RBBIM_BACKGROUND,"hbmBack",$hImage)
Next
;End SetImage
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]_GUICtrlRebar_SetBandStyleBreak($hReBar, 1)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $btnExit
Exit
EndSwitch
WEnd
EndFunc ;==>_Main
Func OnAutoItExit()
_WinAPI_DeleteObject($hImage)
FileDelete($ImageFileName)
EndFunc
; Write message to memo
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
Func _CreateImage()
Local $FileName = "0x424D360300000000000036000000280000000A00000018000000010018000000000000030000130B0000130B000000000000000000001C6F8C1B6F8C1C6F8C"
$FileName &= "1B6F8C1B6F8C1B6F8C1B6F8C1B6F8C1B6F8C1C6F8C00002D90AE2D90AE2D91AF2D90AF2C91AF2D90AF2D90AF2C90AF2D90AF2C90AF00003CA9C43CA9C43CA9C3"
$FileName &= "3CA9C43CA8C43CA9C43CA9C43CA9C43CA9C43CA9C400004ABCD14ABCD14ABCD14ABBD04ABCD04ABCD14ABCD049BCD04ABCD14ABBD0000052C6D752C6D752C5D7"
$FileName &= "53C6D752C6D752C6D752C6D752C6D852C6D752C5D700004FBFD44FBFD34FC0D44FBFD34FC0D44FBFD44FBFD44FBFD44FC0D44FBFD4000043ADCA43ADC943ADC9"
$FileName &= "44ADC943ADC943ADC943ADC943ADC943ADC943ADC90000349BB6359BB6349BB6359BB5349BB6349BB5349BB6359BB6349BB6349AB600002C91AC2C92AD2C91AC"
$FileName &= "2D91AD2C91AD2C92AD2C92AD2D91AC2C92AD2C91AD0000329AB9329BB9329BB9329AB9329BB9329BB9329BB9329AB9329BB9329BB9000040AEC740AFC841AFC7"
$FileName &= "41AFC741AFC841AFC741AEC740AFC741AFC741AFC7000052C6D752C5D752C6D852C6D753C6D752C6D752C6D752C6D752C5D752C5D7000060D7E560D8E561D8E5"
$FileName &= "61D8E560D8E560D8E560D8E660D8E561D8E560D8E500006DE8F36EE8F26EE9F36EE9F26EE9F26EE9F36EE8F36EE9F36DE8F36EE9F300006BE3F06BE4F06CE4F0"
$FileName &= "6CE3F06BE3F06CE4EF6BE3F06BE4F06BE3EF6CE3EF000065DAE965DAE965DAE965D9E965DAEA65DAE965DAE965DAEA65DAE965DAEA000053C1D553C1D552C1D6"
$FileName &= "53C1D653C1D652C1D653C1D653C1D653C1D553C1D600003FA8BF3FA8C03FA7BF3FA7BF40A8C03FA8C03FA8C03FA7BF3FA8C040A8BF00002A8DA72A8EA6298DA7"
$FileName &= "2A8DA72A8DA7298EA72A8DA6298DA72A8DA6298DA700001D76931D77931D77931D77941D77941D77931D77941D77931D77931E7793000014647E14637E14637E"
$FileName &= "14637E14647E14637E15647E14637E15637E14637E00001054661054661054671054660F53660F53670F54661054661054670F546600000B444E0C444E0B444E"
$FileName &= "0B444E0B444E0B454F0B444E0B444E0B444E0B444F00000634360634350734360734350734360734350634360734360634350634350000"
Local $WritungFile = FileOpen(@TempDir & "\###bar.bmp",18)
FileWrite($WritungFile,$FileName)
FileClose($WritungFile)
Return @TempDir & "\###bar.bmp"
EndFunc