Что нового

Отключение резервирования места для иконок в ToolBar

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Доброго времени суток.

Допустим имеется подобный ToolBar: (пример Yashied'а)
http://autoit-script.ru/index.php?topic=14632.msg92135#msg92135

Как видно из примера, текст находится ниже середины, а верх "зарезервирован" для иконки пункта. Есть ли способ при размере кнопок скажем:
Код:
_GUICtrlToolbar_SetButtonSize($_hMain_ToolBar, 36, 64)


Заставить текст отображаться в центре кнопки, а не где то снизу.

Заранее спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
firex,
Попробуйте так.
Код:
;...
$hToolbar = _GUICtrlToolbar_Create($hTool, BitOR($BTNS_SHOWTEXT, $TBSTYLE_LIST, $TBSTYLE_TOOLTIPS), BitOR($TBSTYLE_EX_MIXEDBUTTONS, $TBSTYLE_EX_DOUBLEBUFFER))
;...
 

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Код:
#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>

_Main()

Func _Main()
    Local $hGUI, $hToolbar, $aStrings[4]
    Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp

    ; Создаёт GUI
    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    GUISetState()
	; _GUICtrlToolbar_SetPadding($hToolbar, 0, -10)
	 _GUICtrlToolbar_SetBitmapSize($hToolbar, 0, 0) ; размер иконки по нолям

    ; Добавляет строки
    $aStrings[0] = _GUICtrlToolbar_AddString($hToolbar, "&Новый")
    $aStrings[1] = _GUICtrlToolbar_AddString($hToolbar, "&Открыть")
    $aStrings[2] = _GUICtrlToolbar_AddString($hToolbar, "&Сохранить")
    $aStrings[3] = _GUICtrlToolbar_AddString($hToolbar, "&Справка")

    ; Добавляет кнопки
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, -2, $aStrings[0])
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, -2, $aStrings[1])
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, -2, $aStrings[2])
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, -2, $aStrings[3])

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc   ;==>_Main


madmasles
Код:
#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>

_Main()

Func _Main()
    Local $hGUI, $hToolbar, $aStrings[4]
    Local Enum $idNew = 1000, $idOpen, $idSave, $idHelp

    ; Создаёт GUI
    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
	$hToolbar = _GUICtrlToolbar_Create($hGUI, $TBSTYLE_LIST) ; Стиль иконок слева от текста
    GUISetState()

    _GUICtrlToolbar_SetBitmapSize($hToolbar, 0, 0) ; левый отступ будет меньше

    ; Добавляет строки
    $aStrings[0] = _GUICtrlToolbar_AddString($hToolbar, "&Новый")
    $aStrings[1] = _GUICtrlToolbar_AddString($hToolbar, "&Открыть")
    $aStrings[2] = _GUICtrlToolbar_AddString($hToolbar, "&Сохранить")
    $aStrings[3] = _GUICtrlToolbar_AddString($hToolbar, "&Справка")

    ; Добавляет кнопки
    _GUICtrlToolbar_AddButton($hToolbar, $idNew, -2, $aStrings[0])
    _GUICtrlToolbar_AddButton($hToolbar, $idOpen, -2, $aStrings[1])
    _GUICtrlToolbar_AddButton($hToolbar, $idSave, -2, $aStrings[2])
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, -2, $aStrings[3])

    ; Цикл выполняется, пока окно не будет закрыто
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc   ;==>_Main
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
firex, AZJIO,
Код:
#include <GUIConstantsEx.au3>
;~ #include <GUIImageList.au3>
#include <GUIToolbar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
;~ #include <WinAPIEx.au3>

Global $iStartID = Random(10500, 11000, 1); -:)

$hForm = GUICreate('MyGUI', 332, 332)
$hTool = GUICreate('', 332, 64, 0, 0, $WS_CHILD, 0, $hForm)
$nDummy = GUICtrlCreateDummy()
$hToolbar = _GUICtrlToolbar_Create($hTool, BitOR($BTNS_SHOWTEXT, $TBSTYLE_LIST, $TBSTYLE_TOOLTIPS), BitOR($TBSTYLE_EX_MIXEDBUTTONS, $TBSTYLE_EX_DOUBLEBUFFER))
For $i = 0 To 4
	_GUICtrlToolbar_AddString($hToolbar, 'Button ' & $i + 1)
	_GUICtrlToolbar_AddButton($hToolbar, $iStartID + $i, -2, $i)
Next
_GUICtrlToolbar_SetButtonSize($hToolbar, 64, 64)
_GUICtrlToolbar_SetMetrics($hToolbar, 0, 0, 1, 0)
_GUICtrlToolbar_SetIndent($hToolbar, 1)
_SendMessage($hToolbar, $TB_AUTOSIZE)
GUISwitch($hForm)
; Здесь создаем все остальные элементы GUI
GUICtrlCreateLabel('', 0, 64, 335, 2, $SS_ETCHEDHORZ)
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
GUISetState(@SW_SHOWNOACTIVATE, $hTool)
GUISetState(@SW_SHOW, $hForm)

While 1
	Switch GUIGetMsg()
		Case 0
			ContinueLoop
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $nDummy
			MsgBox(64, 'Toolbar', 'Button ' & GUICtrlRead($nDummy) - ($iStartID - 1) & ' has been pressed!', 0, $hForm)
	EndSwitch
WEnd

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
	Switch $hWnd
		Case $hTool
			GUICtrlSendToDummy($nDummy, BitAND($wParam, 0xFFFF))
	EndSwitch
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND
 
Автор
firex

firex

AutoIT Гуру
Сообщения
943
Репутация
208
madmasles
AZJIO
Благодарю.
 
Верх