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

Компьютерный форум 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,
Смотрите в справке раздел GuiToolbar Management.
Это сообщение посчитали полезным следующие участники:

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



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

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


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


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

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


madmasles , Спасибо !!

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


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


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

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


а как заменить картинку на кнопке созданной через
Код: Выделить весь код
_GUICtrlToolbar_AddButton
?

Отправлено: 18:52, 08-08-2014 | #4


Аватара для madmasles

Ветеран


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

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


replerk1334,
Смотрите пример к функции _GUICtrlToolbar_SetButtonBitMap().
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:56, 08-08-2014 | #5


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


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

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


madmasles, спасибо!

Отправлено: 19:05, 08-08-2014 | #6


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


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

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


madmasles, я поискал и узнал много нового в справке , только как загрузить свою иконку , не ту что идет в стандартном системном bitmaps, а именно установить в тулбаре свою иконку к примеру mozilla , я пытался по разному сделать но в итоге либо отображалась системная стандартная иконка или вовсе было пустое место. Приведите пожалуйста пример в котором я наконец таки пойму как это сделать ?
Заранее спасибо .

Отправлено: 14:39, 09-08-2014 | #7


Аватара для madmasles

Ветеран


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

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


replerk1334,
Завтра или послезавтра сделаю пример, сейчас уезжаю.

Отправлено: 14:53, 09-08-2014 | #8


Аватара для madmasles

Ветеран


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

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


replerk1334,
Попробуйте с иконками сделать примерно так.
Код: Выделить весь код
#include <WinAPIEx.au3>
#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>

Opt('MustDeclareVars', 1)

_Main()

Func _Main()
    Local $hGUI, $hToolbar, $i_TB_Btn = 1000, $a_IcoString[4][3] = [[130, '&First'],[132, '&Second'],[134, '&Third'],[136, '&Fourth']], _
            $ah_BitMap[4], $a_Info

    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    For $i = 0 To 3
        $a_IcoString[$i][0] = _WinAPI_ShellExtractIcon('shell32.dll', $a_IcoString[$i][0], 16, 16)
        $a_Info = _WinAPI_GetIconInfo($a_IcoString[$i][0])
        $ah_BitMap[$i] = _WinAPI_CopyBitmap($a_Info[5])
        $a_IcoString[$i][2] = _GUICtrlToolbar_AddBitmap($hToolbar, 1, 0, $ah_BitMap[$i])
        $a_IcoString[$i][1] = _GUICtrlToolbar_AddString($hToolbar, $a_IcoString[$i][1])
        If $i = 3 Then _GUICtrlToolbar_AddButtonSep($hToolbar)
        _GUICtrlToolbar_AddButton($hToolbar, $i_TB_Btn, $a_IcoString[$i][2], $a_IcoString[$i][1])
        $i_TB_Btn += 1
        _WinAPI_DestroyIcon($a_IcoString[$i][0])
        For $j = 4 To 5
            _WinAPI_DeleteObject($a_Info[$j])
        Next
    Next
    $a_IcoString = 0
    $a_Info = 0
    GUISetState()
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    For $i = 0 To 3
        _WinAPI_DeleteObject($ah_BitMap[$i])
    Next
EndFunc   ;==>_Main
Это сообщение посчитали полезным следующие участники:

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


Аватара для madmasles

Ветеран


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

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


replerk1334,
И еще один пример.
Код: Выделить весь код
#include <WinAPIEx.au3>
#include <GuiToolbar.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Global $hGUI, $iDummy, $iTB_BtnFirst = Random(10000, 15000, 1)

_Main_1()
Exit

Func _Main_1()
    Local $hToolbar, $a_IcoString[4][3] = [[130, '&First'],[132, '&Second'],[134, '&Third'],[136, '&Fourth']], _
            $ah_BitMap[4], $i_ID_TB_Btn, $a_Info, $i_W = 32, $i_H = 32;если 16х16, то не нужна функция _GUICtrlToolbar_SetBitmapSize

    $hGUI = GUICreate(StringTrimRight(@ScriptName, 4), 400, 300)
    $iDummy = GUICtrlCreateDummy()
    $hToolbar = _GUICtrlToolbar_Create($hGUI)
    _GUICtrlToolbar_SetBitmapSize($hToolbar, $i_W, $i_H)
    For $i = 0 To 3
        $a_IcoString[$i][0] = _WinAPI_ShellExtractIcon('shell32.dll', $a_IcoString[$i][0], $i_W, $i_H)
        $a_Info = _WinAPI_GetIconInfo($a_IcoString[$i][0])
        $ah_BitMap[$i] = _WinAPI_CopyBitmap($a_Info[5])
        $a_IcoString[$i][2] = _GUICtrlToolbar_AddBitmap($hToolbar, 1, 0, $ah_BitMap[$i])
        $a_IcoString[$i][1] = _GUICtrlToolbar_AddString($hToolbar, $a_IcoString[$i][1])
        If $i = 3 Then _GUICtrlToolbar_AddButtonSep($hToolbar)
        _GUICtrlToolbar_AddButton($hToolbar, $iTB_BtnFirst + $i, $a_IcoString[$i][2], $a_IcoString[$i][1])
        _WinAPI_DestroyIcon($a_IcoString[$i][0])
        For $j = 4 To 5
            _WinAPI_DeleteObject($a_Info[$j])
        Next
    Next
    $a_IcoString = 0
    $a_Info = 0
    GUISetState()
    GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                For $i = 0 To 3
                    _WinAPI_DeleteObject($ah_BitMap[$i])
                Next
                _GUICtrlToolbar_Destroy($hToolbar)
                GUIDelete($hGUI)
                ExitLoop
            Case $iDummy
                $i_ID_TB_Btn = GUICtrlRead($iDummy)
                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
    WEnd
EndFunc   ;==>_Main_1

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Local $i_ID

    Switch $hWnd
        Case $hGUI
            $i_ID = BitAND($wParam, 0xFFFF)
            Switch $i_ID
                Case $iTB_BtnFirst To $iTB_BtnFirst + 3
                    GUICtrlSendToDummy($iDummy, $i_ID)
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

Последний раз редактировалось madmasles, 11-08-2014 в 09:07.

Это сообщение посчитали полезным следующие участники:

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



Компьютерный форум 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




 
Переход