Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для 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