|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Создание GUI с "красивым тулбраром " или графическими кнопками |
|
|
[решено] Создание GUI с "красивым тулбраром " или графическими кнопками
|
Новый участник Сообщения: 13 |
Профиль | Отправить PM | Цитировать
Здравствуйте уважаемые профи Autoit !
Появилась идея создать окно с красивым тулбаром , но покуда не могу понять как это сделать , пробивал ставить иконки и присваивать им события как в обычной кнопки ,все работает но оформить как на изображении которое я приложил я не смог .Посмотрите изображение(тулбар о котором я говорил выделен красным цветом) и ответьте возможно ли создать такой тулбар ,если возможно то как ??? Заранее спасибо! |
|
Отправлено: 14:24, 08-08-2014 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать replerk1334,
Смотрите в справке раздел GuiToolbar Management. |
Отправлено: 14:46, 08-08-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать madmasles , Спасибо !!
|
Отправлено: 15:15, 08-08-2014 | #3 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:52, 08-08-2014 | #4 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать replerk1334,
Смотрите пример к функции _GUICtrlToolbar_SetButtonBitMap(). |
|
Отправлено: 18:56, 08-08-2014 | #5 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать madmasles, спасибо!
|
Отправлено: 19:05, 08-08-2014 | #6 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать madmasles, я поискал и узнал много нового в справке , только как загрузить свою иконку , не ту что идет в стандартном системном bitmaps, а именно установить в тулбаре свою иконку к примеру mozilla , я пытался по разному сделать но в итоге либо отображалась системная стандартная иконка или вовсе было пустое место. Приведите пожалуйста пример в котором я наконец таки пойму как это сделать ?
Заранее спасибо . |
Отправлено: 14:39, 09-08-2014 | #7 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать replerk1334,
Завтра или послезавтра сделаю пример, сейчас уезжаю. |
Отправлено: 14:53, 09-08-2014 | #8 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Использование - 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 |
|