Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как задать фоновый цвет в GUICtrlCreateCheckbox

Ответить
Настройки темы
[решено] Как задать фоновый цвет в GUICtrlCreateCheckbox

Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


GUICtrlCreateLabel("вавава", 5,135, 310, 30, $SS_CENTER)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
Это для GUICtrlCreateLabel а как повторить для GUICtrlCreateCheckbox

Отправлено: 00:58, 18-05-2010

 

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось madmasles, 18-05-2010 в 01:37.


Отправлено: 01:24, 18-05-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


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

Отправлено: 12:15, 18-05-2010 | #3


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
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:31, 18-05-2010 | #4


Аватара для Centrinar

Старожил


Сообщения: 247
Благодарности: 1

Профиль | Цитировать


Код: Выделить весь код
#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
Можно на примере?

Отправлено: 21:29, 18-05-2010 | #5


Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#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
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:59, 18-05-2010 | #6


Аватара для Sp01LeR

Пользователь


Сообщения: 60
Благодарности: 13

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar chbox_ico.rar
(876 байт, 12 просмотров)

Цитата:
Это для GUICtrlCreateLabel а как повторить для GUICtrlCreateCheckbox
Цитата:
Так Checkbox и так вроде без подложки. Можно еще фокус другому элементу передать.

А может имеется ввиду сам белый фон в квадратике?

Имхо, тут 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 нужно проверять значение глобальной переменной

ЗЫ: на всяк случай прикреплю иконки с прозрачностью...
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:05, 19-05-2010 | #7


Аватара для Angelus

Пользователь


Сообщения: 52
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#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
Фон создается как надо, но при этом программа не устанавливается, может подскажете что я делаю не так?

Отправлено: 23:19, 26-11-2010 | #8


Аватара для beve

Старожил


Сообщения: 307
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата 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

-------
Не в кількості знань полягає освіта, а в повному розумінні і вмілому використанні того, що знаєш.


Последний раз редактировалось beve, 27-11-2010 в 01:40.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:26, 27-11-2010 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как задать фоновый цвет в GUICtrlCreateCheckbox

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Ресурсы - Как изменить цвет окна wmp? L.A.G. Оформление Windows XP 0 04-05-2010 14:56
Общее - Как поменять фоновый рисунок в меню кнопки пуск Mirol.2010 Оформление Windows XP 0 25-03-2010 15:37
Win32 API - как узнать цвет точки в с++ ? Turman Программирование и базы данных 4 26-06-2009 09:46
Загрузка - Как изменить фоновый рисунок в Биосе gulpit Хочу все знать 10 12-02-2009 04:12
Разное - [решено] как изменить фоновый рисунок в windows pe the winner Оформление Windows XP 10 21-01-2009 01:10




 
Переход