Что нового

Элементы GUI Как увеличить картинку на кнопке, когда увеличился ее (кнопки) размер?

Нубокодер

Новичок
Сообщения
75
Репутация
0
Как растянуть картинку под размер кнопки в полном экране? Или установить другую бОльшую картинку на всю кнопку?
(И почему нельзя загружать файлы *.bmp на форум для примера? Подставьте тогда свои любые файлы *.bmp вместо 32Full.bmp, 32Clos.bmp и Большая.bmp)
Код:
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>

Opt("GUIOnEventMode", 1) ; включает режим OnEvent (по событию)
Opt("GUIResizeMode", 1) ; опция поведение элементов при изменение размеров (изменять все пропорционально)

$hWin = GUICreate("Тест", 777, 437, 100, 150, $WS_POPUP) ; окно без системной строки

$ButFull = GUICtrlCreateButton("Full", 700, 50, 32, 32, $BS_BITMAP) ; кнопка полный экран
GUICtrlSetImage($ButFull, @ScriptDir & '\32Full.bmp')
GUICtrlSetCursor ( -1, 0 ) ; курсор на элементе

$ButClos = GUICtrlCreateButton("Clos", 735, 10, 32, 32, $BS_BITMAP) ; кнопка закрыть
GUICtrlSetImage($ButClos, @ScriptDir & '\32Clos.bmp')
GUICtrlSetCursor ( -1, 0 ) ; курсор на элементе

GUISetState() ; окна видимы:

GUICtrlSetOnEvent($ButClos, "_CLOSEClicked") ; обработка пользовательской кнопки закрытия
GUICtrlSetOnEvent($ButFull, "_FullClicked") ; обработка пользовательской кнопки полного экрана

While Not @error
    Sleep (1000)
WEnd

Func _CLOSEClicked() ; функция кнопки выхода
    $ext = MsgBox(4, "Exit", "Want to quit?") ; Выход, Хотите выйти из игры?
    If $ext = 6 Then
        Exit
    EndIf
EndFunc

Func _FullClicked() ; функция полного экрана и обратно
    If  Not BitAND(WinGetState ( $hWin ), 32) Then ; если статус окна "НЕ развернуто на полный экран":
        GUISetState(@SW_MAXIMIZE, $hWin) ; в полный размер
        GUICtrlSetImage($ButFull, @ScriptDir & '\Большая.bmp')
        GUICtrlSetImage($ButClos, @ScriptDir & '\Большая.bmp')
    Else
        GUISetState(@SW_RESTORE, $hWin) ; в оконный размер
        GUICtrlSetImage($ButFull, @ScriptDir & '\32Full.bmp')
        GUICtrlSetImage($ButClos, @ScriptDir & '\32Clos.bmp')
    EndIf
EndFunc
Сообщение автоматически объединено:

Вы будете ржать, но проблема была в том, что я вместо GUICtrlSetImage($ButClos, @ScriptDir & '\Большая.bmp') использовал GUICtrlSetImage($ButClos, @SystemDir & '\Большая.bmp'). А т.к. изображения были однообразные, то не замечал, что картинка вообще не меняется. Главное компилятор молчит как партизан и не выдает ошибок, ведь по пути нет файла. :lol: Вывод сделан: в следующий раз буду сильно разные изображения юзать. Всем спасибо за помощь :lol:
 
Последнее редактирование:
Верх