Описание функции


AddIconToButton

Иконка на кнопке слева от текста

AddIconToButton(ButtonID, IconID [, s = 16])

Параметры

ButtonID Дескриптор кнопки
IconID Дескриптор иконки
s Размер иконки

Пример

EnableExplicit

; для значка кнопки
#Lib = 0
InitCommonControls_() ; инициализация классов элементов управления
If OpenLibrary(#Lib, "comctl32.dll")
    Prototype ImageList_AddIcon(List, Icon)
    Global ImageList_AddIcon.ImageList_AddIcon
    ImageList_AddIcon = GetFunction(#Lib, "ImageList_AddIcon")
    CloseLibrary(#Lib)
EndIf
; #BCM_FIRST = $1600
; #BCM_SETIMAGELIST = #BCM_FIRST + 2
; #BUTTON_IMAGELIST_ALIGN_LEFT = 0
; конец для значка кнопки

Procedure AddIconToButton(ButtonID, IconID, s = 16)
    Protected buttonImgList.BUTTON_IMAGELIST
    Protected himlIcons

    himlIcons = ImageList_Create_(s, s, #ILC_MASK | #ILC_COLOR32, 1, 0)

    ImageList_AddIcon(himlIcons, IconID)

    With buttonImgList
        \uAlign = #BUTTON_IMAGELIST_ALIGN_LEFT ; #BUTTON_IMAGELIST_ALIGN_RIGHT
        \margin\top = 3
        \margin\bottom = 3
        \margin\left = 3
        \margin\right = 3
        \himl = himlIcons
    EndWith

    SendMessage_(ButtonID, #BCM_SETIMAGELIST, 0, buttonImgList)
EndProcedure

Define hIcon

If OpenWindow(0, 0, 0, 220, 100, "Пример...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ButtonGadget (1, 10, 60, 200, 30, "Закрыть")
    If ExtractIconEx_("Shell32.dll", 131, 0, @hIcon, 1)
        AddIconToButton(GadgetID(1), hIcon)
    EndIf

    Repeat
        Select WaitWindowEvent()
            Case #PB_Event_Gadget
                Select EventGadget()
                    Case 1
                        CloseWindow(0)
                        End
                EndSelect
            Case #PB_Event_CloseWindow
                CloseWindow(0)
                End
        EndSelect
    ForEver
EndIf