Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание GUI с "красивым тулбраром " или графическими кнопками

Ответить
Настройки темы
[решено] Создание GUI с "красивым тулбраром " или графическими кнопками

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: replerk1334
Дата: 08-08-2014
Изображения
Тип файла: png mozilla.png
(35.6 Kb, 34 просмотров)
Здравствуйте уважаемые профи Autoit !
Появилась идея создать окно с красивым тулбаром , но покуда не могу понять как это сделать , пробивал ставить иконки и присваивать им события как в обычной кнопки ,все работает но оформить как на изображении которое я приложил я не смог .Посмотрите изображение(тулбар о котором я говорил выделен красным цветом) и ответьте возможно ли создать такой тулбар ,если возможно то как ???
Заранее спасибо!

Отправлено: 14:24, 08-08-2014

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


replerk1334,
Или можно сделать все это проще. Смотрите пример к функции _GUICtrlToolbar_SetImageList(). (Почему я сам не посмотрел его, прежде чем писать примеры?)
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:38, 11-08-2014 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


madmasles, спасибо вам большое !!! теперь все понятно !!!!!)))

Отправлено: 10:33, 11-08-2014 | #12


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: 7z Icon.7z
(149.3 Kb, 13 просмотров)

replerk1334,
Так можно сделать с крупными иконками (прикрепленные иконки должны лежать в папке со скриптом).
читать дальше »
Код: Выделить весь код
#include <WinAPIEx.au3>
#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GuiImageList.au3>

Opt('MustDeclareVars', 1)

Global $iDummy

_Main_2()
Exit

Func _Main_2()
    Local $hGUI, $hToolbar, $a_IcoString[4][3] = [['11.ico', '12.ico', '&First'],['21.ico', '22.ico', '&Second'],['31.ico', '32.ico', '&Third'], _
            ['41.ico', '42.ico', '&Fourth']], $i_ID_TB_Btn, $a_Info, $i_W = 48, $i_H = 48, $hIL_Normal, $hIL_Hot, $i_Btn, _
            $iTB_BtnFirst = Random(10000, 15000, 1)

    $hIL_Normal = _GUIImageList_Create($i_W, $i_H, 5)
    $hIL_Hot = _GUIImageList_Create($i_W, $i_H, 5)
    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
    $iDummy = GUICtrlCreateDummy()
    $hToolbar = _GUICtrlToolbar_Create($hGUI, 0x00000800, $TBSTYLE_EX_DOUBLEBUFFER)
    If @WorkingDir <> @ScriptDir Then FileChangeDir(@ScriptDir)
    For $i = 0 To 3
        $a_IcoString[$i][0] = _WinAPI_ShellExtractIcon($a_IcoString[$i][0], 0, $i_W, $i_H)
        $a_Info = _WinAPI_GetIconInfo($a_IcoString[$i][0])
        _GUIImageList_Add($hIL_Normal, $a_Info[5]);, $a_Info[4])
        For $j = 4 To 5
            _WinAPI_DeleteObject($a_Info[$j])
        Next
        _WinAPI_DestroyIcon($a_IcoString[$i][0])
        $a_IcoString[$i][1] = _WinAPI_ShellExtractIcon($a_IcoString[$i][1], 0, $i_W, $i_H)
        $a_Info = _WinAPI_GetIconInfo($a_IcoString[$i][1])
        _GUIImageList_Add($hIL_Hot, $a_Info[5]);, $a_Info[4])
        For $j = 4 To 5
            _WinAPI_DeleteObject($a_Info[$j])
        Next
        _WinAPI_DestroyIcon($a_IcoString[$i][1])
        _GUICtrlToolbar_AddString($hToolbar, $a_IcoString[$i][2])
    Next
    _GUICtrlToolbar_SetImageList($hToolbar, $hIL_Normal)
    _GUICtrlToolbar_SetHotImageList($hToolbar, $hIL_Hot)
    For $i = 0 To 3
        _GUICtrlToolbar_AddButton($hToolbar, $iTB_BtnFirst + $i, $i, $i)
    Next
    $a_Info = _GUICtrlToolbar_GetButtonSize($hToolbar)
    If Not @error Then _GUICtrlToolbar_SetIndent($hToolbar, (400 - $a_Info[1] * 4) / 2)
    $a_IcoString = 0
    $a_Info = ControlGetPos($hGUI, '', $hToolbar)
    If Not @error Then GUICtrlCreateLabel('', 0, $a_Info[3], 405, 3, BitOR($GUI_SS_DEFAULT_LABEL, $SS_ETCHEDHORZ))
    $a_Info = 0
    $i_Btn = GUICtrlCreateButton('Button', 150, 150, 100, 40)
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, '_WM_COMMAND_Main_2')
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $i_Btn
                MsgBox(64, 'Info', 'Button $i_Btn has been pressed!', 0, $hGUI)
            Case $iDummy
                $i_ID_TB_Btn = GUICtrlRead($iDummy)
                Switch $i_ID_TB_Btn
                    Case $iTB_BtnFirst To $iTB_BtnFirst + 3
                        MsgBox(64, 'Toolbar', 'Button ID: ' & $i_ID_TB_Btn & @LF & 'Button Text: "' & _GUICtrlToolbar_GetButtonText($hToolbar, $i_ID_TB_Btn) & _
                                '"' & @LF & 'has been pressed!', 0, $hGUI)
                EndSwitch
        EndSwitch
    WEnd
    GUIRegisterMsg($WM_COMMAND, '')
    _GUIImageList_Destroy($hIL_Normal)
    _GUIImageList_Destroy($hIL_Hot)
    _GUICtrlToolbar_Destroy($hToolbar)
    GUIDelete($hGUI)
    $iDummy = 0
EndFunc   ;==>_Main_2

Func _WM_COMMAND_Main_2($hWnd, $iMsg, $wParam, $lParam)
    GUICtrlSendToDummy($iDummy, BitAND($wParam, 0xFFFF))
    Return $GUI_RUNDEFMSG
EndFunc   ;==>_WM_COMMAND_Main_2
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:45, 13-08-2014 | #13


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Отправить PM | Цитировать


madmasles, спасибо!!

Отправлено: 15:14, 13-08-2014 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание GUI с "красивым тулбраром " или графическими кнопками

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Использование - Windows Server 2008 - лицензия на 32/64-bit "и" или "или"? Looking Лицензирование продуктов Microsoft 3 12-03-2012 08:22
Ошибка - [решено] Перестал открываться "Блокнот" или где в реестре "живёт" "блокнот". ALEKCEN Microsoft Windows 2000/XP 2 09-03-2011 21:42
Создание "Прогресса" на время работы "InetGetSize" sashadeg AutoIt 24 30-09-2009 15:26
[решено] Передалать стандартный "InputBox" в анологичное "GUI-окно" sashadeg AutoIt 15 05-04-2009 16:47
Когда нажимаю букву"M" или "L","U"...Проблема.. ekodrive Microsoft Windows 2000/XP 7 27-01-2006 15:13




 
Переход