Войти

Показать полную графическую версию : [решено] Checkbox с изменяющимися иконками


Страниц : 1 [2]

Creat0R
26-04-2010, 08:29
Тогда так, но создавать картинку нужно после создания остальных элементов:

GUICtrlCreatePic(@SystemDir & "\oobe\images\wpakey.jpg", 0, 0, 500, 500, $WS_CLIPSIBLINGS)

Для белого фона текста можно использовать GUICtrlSetBkColor($aRetArr[1], 0xFFFFFF) перед выходом из функции _GUICtrlCreateCheckboxEx.

Centrinar
26-04-2010, 13:06
то же не помогло

Creat0R
26-04-2010, 16:16
то же не помогло »
«создавать картинку нужно после создания остальных элементов»...

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>

; Только эту строку и нужно править для добавления новых, или удаления пунктов ;)
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $sProgs = 'Setup1.exe=Прог1|Seup2.exe=Прог2|Seup3.exe=Прог3|Seup4.exe=Прог4|Seup5.exe=Прог5'

;Это так, чтобы проверить столбцы :)
$sProgs &= $sProgs & '|' & $sProgs & '|' & $sProgs & '|' & $sProgs & '|' & $sProgs

Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) Const (http://www.autoitscript.com/autoit3/docs/keywords.htm#Const) $aProgs = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)($sProgs, '|')
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $anCheckBoxes[$aProgs[0]+1]
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $aCheckedIcons[$aProgs[0]+1]
Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $aUnCheckedIcons[$aProgs[0]+1]

$Form1 = GUICreate (http://www.autoitscript.com/autoit3/docs/functions/GUICreate.htm)("", 500, 500)
GUISetBkColor (http://www.autoitscript.com/autoit3/docs/functions/GUISetBkColor.htm)(0xFFFFFF)

$iTop = 10
$iLeft = 20

For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aProgs[0]
$aCheckedIcons[$i] = -5
$aUnCheckedIcons[$i] = -4

$anCheckBoxes[$i] = _GUICtrlCreateCheckboxEx(StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '^.*=', ''), $iLeft, $iTop, -1, 15, "shell32.dll", $aUnCheckedIcons[$i])
$iTop += 20

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iTop > 450 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iTop = 10
$iLeft += 100
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)

$nStart = GUICtrlCreateButton (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateButton.htm)("Выполнить", 10, 470, 80, 25)

GUICtrlCreatePic (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreatePic.htm)(@DesktopDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@DesktopDir) & "\back.jpg", 0, 0, 500, 500, $WS_CLIPSIBLINGS)

GUISetState (http://www.autoitscript.com/autoit3/docs/functions/GUISetState.htm)(@SW_SHOW (http://www.autoitscript.com/autoit3/docs/macros.htm#@SW_SHOW))

While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$nMsg = GUIGetMsg (http://www.autoitscript.com/autoit3/docs/functions/GUIGetMsg.htm)()

Switch (http://www.autoitscript.com/autoit3/docs/keywords.htm#Switch) $nMsg
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $GUI_EVENT_CLOSE
Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit)
Case (http://www.autoitscript.com/autoit3/docs/keywords.htm#Case) $nStart
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aProgs[0]
$aCheckBox = $anCheckBoxes[$i]

If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) GUICtrlRead (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlRead.htm)($aCheckBox[1]) = 1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
GUICtrlSetImage (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetImage.htm)($aCheckBox[0], "shell32.dll", $aCheckedIcons[$i])

$sProgName = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '^.*=', '')
$sProgExe = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aProgs[$i], '=.*$', '')

MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(64, $sProgName, $sProgExe)
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
GUICtrlSetImage (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetImage.htm)($aCheckBox[0], "shell32.dll", $aUnCheckedIcons[$i])
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
EndSwitch (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndSwitch)
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _GUICtrlCreateCheckboxEx($sText, $iLeft, $iTop, $iWidth, $iHeight, $sIconFile="", $nIconIndex=0)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $aRetArr[2]

$aRetArr[0] = GUICtrlCreateIcon (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateIcon.htm)($sIconFile, $nIconIndex, $iLeft + 17, $iTop, 16, 16)
GUICtrlSetState (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetState.htm)(-1, $GUI_DISABLE)

$aRetArr[1] = GUICtrlCreateCheckbox (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateCheckbox.htm)(" " & $sText & " ", $iLeft, $iTop, $iWidth, $iHeight, $WS_CLIPSIBLINGS)
GUICtrlSetBkColor (http://www.autoitscript.com/autoit3/docs/functions/GUICtrlSetBkColor.htm)($aRetArr[1], 0xFFFFFF)

Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) $aRetArr
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)

Centrinar
26-04-2010, 16:21
СПС, ты прав я прост не правильно директорию указал )))




© OSzone.net 2001-2012