Redline
AutoIT Гуру
- Сообщения
- 506
- Репутация
- 375
В приложении сделал кнопки в виде картинок на GUICtrlCreatePic с использованием Icons.au3. Все работает на ура, но захотелось упаковать все ресурсы в один файл вместе со скриптом через Resources.au3 и откомпилировать.
Возникли проблемки:
1. Размер рисунка не подстраивается под размер элемента управления, ну при желании можно уменьшить его в редакторе ничего страшного.
2. Если элемент управления находится на вкладке GUICtrlCreateTabItem, и его рисунок нужно заменить на другой (по нажатию на нем например), то рисунок исчезает, если попереключать вкладки, то он отобразится :wacko:
Кто-нибудь знает решение?
Возникли проблемки:
1. Размер рисунка не подстраивается под размер элемента управления, ну при желании можно уменьшить его в редакторе ничего страшного.
2. Если элемент управления находится на вкладке GUICtrlCreateTabItem, и его рисунок нужно заменить на другой (по нажатию на нем например), то рисунок исчезает, если попереключать вкладки, то он отобразится :wacko:
Код:
#Region AutoIt3Wrapper
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Res_Language=1033
#AutoIt3Wrapper_Run_Au3check=n
#AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, clear.png, RCData, 100, 0
#AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, top.png, RCData, 200, 0
#AutoIt3Wrapper_Run_After=ResHacker.exe -add %out%, %out%, untop.png, RCData, 250, 0
#EndRegion AutoIt3Wrapper
#include <GUIConstants.au3>
#include <Icons.au3>
#Include <Resources.au3>
$proj = 'test'
$hGUI = GUICreate($proj, 200, 220)
$tab = GUICtrlCreateTab(0, 0, 200, 150)
GUICtrlCreateTabItem(' 1 ')
$clear = GUICtrlCreatePic('', 40, 60, 32, 32)
;~ _ResSetImageToCtrl($clear, '#100')
_SetImage($clear, @ScriptDir & '\clear.png')
$SetTop = GUICtrlCreatePic('', 120, 60, 32, 32)
$top = True
WinSetOnTop($proj, '', 1)
;~ _ResSetImageToCtrl($SetTop, '#200')
_SetImage($SetTop, @ScriptDir & '\top.png')
GUICtrlCreateTabItem(' 2 ')
GUICtrlCreateTabItem('')
$_1 = GUICtrlCreatePic('', 80, 180, 32, 32)
;~ _ResSetImageToCtrl($_1, '#200')
_SetImage($_1, @ScriptDir & '\top.png')
$1 = True
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
Case $SetTop
$top = Not $top
If $top Then
;~ _ResSetImageToCtrl($SetTop, '#200')
_SetImage($SetTop, @ScriptDir & '\top.png')
WinSetOnTop($proj, '', 1)
Else
;~ _ResSetImageToCtrl($SetTop, '#250')
_SetImage($SetTop, @ScriptDir & '\untop.png')
WinSetOnTop($proj, '', 0)
EndIf
Case $clear
MsgBox(262192, "msg", "clear!", 0.5)
Case $_1
$1 = Not $1
If $1 Then
;~ _ResSetImageToCtrl($_1, '#200')
_SetImage($_1, @ScriptDir & '\top.png')
Else
;~ _ResSetImageToCtrl($_1, '#250')
_SetImage($_1, @ScriptDir & '\untop.png')
EndIf
EndSwitch
WEnd
Кто-нибудь знает решение?