Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Как задать фоновый цвет в GUICtrlCreateCheckbox (http://forum.oszone.net/showthread.php?t=175921)

Centrinar 18-05-2010 00:58 1415642

Как задать фоновый цвет в GUICtrlCreateCheckbox
 
GUICtrlCreateLabel("вавава", 5,135, 310, 30, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Это для GUICtrlCreateLabel а как повторить для GUICtrlCreateCheckbox

madmasles 18-05-2010 01:24 1415655

Centrinar,
Так Checkbox и так вроде без подложки. Можно еще фокус другому элементу передать.
Код:

#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 429, 218, -1, -1)
GUISetBkColor(0xFFFFCC)
$Label1 = GUICtrlCreateLabel("Label1", 24, 5, 36, 18)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Checkbox1 = GUICtrlCreateCheckbox("Checkbox1", 16, 32, 89, 33)
$Checkbox2 = GUICtrlCreateCheckbox("Checkbox2", 16, 62, 89, 33)
$Button1 = GUICtrlCreateButton("Button1", 176, 24, 153, 65)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState(@SW_SHOW)
#endregion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd


Centrinar 18-05-2010 12:15 1415902

Я ставлю картинку GUICtrlCreatePic("111.jpg", 0, 0, 333, 333) и у чекбоксов появляеться подложка, как убрать?

Yashied 18-05-2010 12:31 1415918

Код:

Func _GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)

    Local $ID = GUICtrlCreateCheckbox($sText, $iLeft, $iTop + Round(($iHeight - 13) / 2), 13, 13, $iStyle, $iExStyle)

    If $ID = 0 Then
        Return 0
    EndIf
    GUICtrlCreateLabel($sText, $iLeft + 16, $iTop + Round(($iHeight - 13) / 2) - 0, $iWidth - 16, 14)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    Return $ID
EndFunc  ;==>_GUICtrlCreateCheckbox


Centrinar 18-05-2010 21:29 1416285

Код:

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

GUICreate("Добавление", 320, 450)
GUICtrlCreatePic(@ScriptDir & "\111.jpg", 0, 0, 320, 450, $WS_CLIPSIBLINGS)
GUICtrlCreateLabel("1. Укажите возраст", 5,5 , 310, 15, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Edit1 = GUICtrlCreateCheckbox("18-30", 10, 165, 90, 15)
$Edit2 = GUICtrlCreateCheckbox("30-50", 10, 185, 90, 15)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Можно на примере?

Yashied 18-05-2010 21:59 1416303

Код:

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

GUICreate("Добавление", 320, 450)
GUICtrlCreatePic(@ScriptDir & "\111.jpg", 0, 0, 320, 450, $WS_CLIPSIBLINGS)
GUICtrlCreateLabel("1. Укажите возраст", 5, 5, 310, 15, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
$Edit1 = _GUICtrlCreateCheckbox("18-30", 10, 165, 90, 15)
$Edit2 = _GUICtrlCreateCheckbox("30-50", 10, 185, 90, 15)
GUISetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func _GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)

    Local $ID = GUICtrlCreateCheckbox($sText, $iLeft, $iTop + Round(($iHeight - 13) / 2), 13, 13, $iStyle, $iExStyle)

    If $ID = 0 Then
        Return 0
    EndIf
    GUICtrlCreateLabel($sText, $iLeft + 16, $iTop + Round(($iHeight - 13) / 2) - 0, $iWidth - 16, 14)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    Return $ID
EndFunc  ;==>_GUICtrlCreateCheckbox


Sp01LeR 19-05-2010 01:05 1416427

Вложений: 1
Цитата:

Это для GUICtrlCreateLabel а как повторить для GUICtrlCreateCheckbox
Цитата:

Так Checkbox и так вроде без подложки. Можно еще фокус другому элементу передать.
:blink:
А может имеется ввиду сам белый фон в квадратике?

Имхо, тут 2 варианта:
1. Вроде на WinAPI как то можно это изменить, но точно не уверен
2. Создать самому:
Код:

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

Opt("GUIOnEventMode", 1)
Global $chbutt1_state=0

$win=GUICreate("MyCheckBOX")
GUISetOnEvent($GUI_EVENT_CLOSE, "Close")
GUISetBkColor(0xFFFFCC)
$chbutt1=GUICtrlCreateIcon("chbox0.ico", -1, 30, 30, 16, 16)
GUICtrlSetOnEvent(-1, "ch_chbox")
GUICtrlCreateLabel("Графический чекбокс", 52, 30)
GUISetState()

While 1
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd

Func Close()
        Exit
EndFunc

Func ch_chbox()
        If $chbutt1_state=0 Then
                GUICtrlSetImage($chbutt1, "chbox1.ico")
                $chbutt1_state=1
        Else
                GUICtrlSetImage($chbutt1, "chbox0.ico")
                $chbutt1_state=0
        EndIf
EndFunc

Есе-сно, что вместо GUICtrlGetState нужно проверять значение глобальной переменной

ЗЫ: на всяк случай прикреплю иконки с прозрачностью...

Angelus 26-11-2010 23:19 1552412

Код:

#requireadmin
#Include <GuiComboBox.au3>
#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <StaticConstants.au3>

Opt( 'TrayIconDebug', 1 )

#Region - Постоянные переменные
Const $Titel_os = 'Автоматическая установка приложений v1.21'
Const $Font = 'Times New Roman'                                                                                                                                                       
Global $Winrar
Global $sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle, $iExStyle
#EndRegion

_GUI ()
Local $msg, $Focus
        $Parent = GUICreate ( $Titel_os, 500, 470 )                                                                                                               
        GUICtrlCreatePic(@ScriptDir & "\fon2.jpg", 0, 0, 500, 470, $WS_CLIPSIBLINGS)
        GUISetFont ( 10, 1000, 0, $Font )                                                                                                                               
        ;GUICtrlCreatePic ( 'fon.jpg', -1, -1, 594, 525 )
       
        $LABLE_1 = GUICtrlCreateLabel ( 'Архиваторы:', 20, 20 )
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        $Winrar = _Winrar ( 'WinRaR', 20, 50, 80, -1, -1 )
        $BUTTON_1 = GUICtrlCreateButton ( 'Установить', 360, 420, 100, -1 )
        GUISetState ( @SW_SHOW )

        While 1
                $msg = GUIGetMsg ()                                                                                                                                               
                Switch $msg
                Case -3                                                                                                                                                                       
                        Exit
                case $BUTTON_1
                        _Winrar ($sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)
              EndSwitch
        WEnd
EndFunc

Func _Winrar ($sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)
        $1 = BitAND ( GUICtrlRead ( $Winrar ), $Gui_Checked )
        Local $ID = GUICtrlCreateCheckbox($sText, $iLeft, $iTop + Round(($iHeight - 13) / 2), 13, 13, $iStyle, $iExStyle)
        If $ID = 0 Then
        Return 0
        EndIf
        GUICtrlCreateLabel($sText, $iLeft + 16, $iTop + Round(($iHeight - 13) / 2) - 0, $iWidth - 16, 14)
        GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
        Return $ID
        If $1 = 1 Then
                MsgBox ( 64, '', 'asd' )
                RunWait ( @ScriptDir & '\' & "Arhiv\WRAR350RU.exe /s")
                GUICtrlSetState ( $Winrar, $GUI_UNCHECKED )
                GUICtrlCreateLabel ( 'OK', 180, 54, -1, -1 )
                GUICtrlSetColor ( -1 , 0x33CC33 )
        ElseIf $1 = 0 Then
                Return 0
        EndIf
EndFunc

Фон создается как надо, но при этом программа не устанавливается, может подскажете что я делаю не так?

beve 27-11-2010 01:26 1552467

Цитата:

Цитата Angelus
Фон создается как надо, но при этом программа не устанавливается, может подскажете что я делаю не так? »

Это, из твоего скрипта:
Код:

       
$1 = BitAND ( GUICtrlRead ( $Winrar ), $Gui_Checked )

If $1 = 1 Then
        MsgBox ( 64, '', 'asd' )
        RunWait ( @ScriptDir & '\' & "Arhiv\WRAR350RU.exe /s")
        GUICtrlSetState ( $Winrar, $GUI_UNCHECKED )
        GUICtrlCreateLabel ( 'OK', 180, 54, -1, -1 )
        GUICtrlSetColor ( -1 , 0x33CC33 )
EndIf

нужно ставить в обработку:
Код:

case $BUTTON_1
сдесь...

Вот для нагладности только (ибо многое придется перепроверять и уточнять в скрипте), как можно:
читать дальше »
Код:

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

Global $iTopForCheckbox=10

Global $aTitleNameID[5][3]
;$aTitleNameID[0][0]=содержит текст-название программы
;$aTitleNameID[0][1]=содержит название программы
;$aTitleNameID[0][2]=будет содержать Id созданного чекбокса для этой программы
;и т.д. от 0 до 4 для других программ
$aTitleNameID[0][0]="прога 1"
$aTitleNameID[0][1]="notepad.exe параметр.txt"
$aTitleNameID[1][0]="прога 2"
$aTitleNameID[1][1]="cmd.exe"
$aTitleNameID[2][0]="прога 3"
$aTitleNameID[2][1]="notepad.exe"
$aTitleNameID[3][0]="прога 4"
$aTitleNameID[3][1]="notepad.exe"
$aTitleNameID[4][0]="прога 5"
$aTitleNameID[4][1]="notepad.exe"


GUICreate("Установка программ", 320, 450)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlCreatePic(@ScriptDir & "\fon2.jpg", 0, 0, 500, 470, $WS_CLIPSIBLINGS)
For $i=0 to UBound ($aTitleNameID)-1
   
$aTitleNameID[$i][2] =
_GUICtrlCreateCheckbox($aTitleNameID[$i][0], 10, $iTopForCheckbox, 90, 15)
   
$iTopForCheckbox+=25
Next
$BUTTON_1 =
GUICtrlCreateButton ( 'Установить', 210, 420, 100, -1 )
GUISetState()

While 1
$nMsg =
GUIGetMsg()
   
Switch $nMsg
       
Case $GUI_EVENT_CLOSE
           
Exit
        case
$BUTTON_1
            $iTopForCheckbox
=10
           
for $i=0 to UBound($aTitleNameID)-1
               
if BitAND (
GUICtrlRead ($aTitleNameID[$i][2]), $Gui_Checked ) then
                   
RunWait($aTitleNameID[$i][1])
                   
GUICtrlSetState ( $aTitleNameID[$i][2], $GUI_UNCHECKED )
                   
GUICtrlCreateLabel ( 'OK', 10+90, $iTopForCheckbox)
                   
GUICtrlSetColor ( -1 , 0x33CC33 )
                   
$iTopForCheckbox+=25
               
else
                   
$iTopForCheckbox+=25
               
endif
            next
            exit
   
EndSwitch
WEnd

Func
_GUICtrlCreateCheckbox($sText, $iLeft, $iTop, $iWidth, $iHeight, $iStyle = -1, $iExStyle = -1)
   
Local $ID =
GUICtrlCreateCheckbox($sText, $iLeft, $iTop + Round(($iHeight - 13) / 2), 13, 13, $iStyle, $iExStyle)
   
If $ID = 0 Then
        Return
0
   
EndIf
   
GUICtrlCreateLabel($sText, $iLeft + 16, $iTop + Round(($iHeight - 13) / 2) - 0, $iWidth - 16, 14)
   
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
   
Return $ID
EndFunc 
;==>_GUICtrlCreateCheckbox



Время: 12:58.

Время: 12:58.
© OSzone.net 2001-