Что нового

[Checkbox] замена галочки на квадрат

SNAK

SNAK
Сообщения
59
Репутация
0
Как заменить галочку на квадрат
Код:
$BS_AUTO3STATE
типо этого
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Возможно, не совсем понял Ваш вопрос , но вот пример из справки плюс добавил установку CheckBox по умолчанию в третье состояние (с квадратиком)
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

Local $nCh1, $nCh2, $nCh3, $nCh4, $nCh5, $nCh6, $msg
GUICreate("My GUI Checkbox") ; Создаёт окно в центре экрана

$nCh1 = GUICtrlCreateCheckbox("Checkbox 1", 10, 10, 120, 20)

$nCh2 = GUICtrlCreateCheckbox("Этот Checkbox имеет три состояния", 10, 30, -1, 20, $BS_AUTO3STATE)

;Устанавливает CheckBox $nCh2 по умолчанию в третье состояние (с квадратиком)
;---------------------------------------------
GUICtrlSetState ( $nCh2, $GUI_INDETERMINATE );
;---------------------------------------------


GUICtrlCreateLabel('Checkbox в виде кнопок', 10, 85, -1, 17)
$nCh3 = GUICtrlCreateCheckbox("-", 10, 105, 40, 40, $BS_PUSHLIKE + $BS_ICON)
GUICtrlSetImage(-1, "shell32.dll", 48, 1)

$nCh4 = GUICtrlCreateCheckbox("-", 60, 115, 24, 24, $BS_PUSHLIKE + $BS_ICON)
GUICtrlSetImage(-1, "shell32.dll", 24, 0)

$nCh5 = GUICtrlCreateCheckbox("-", 10, 155, 40, 40, $BS_PUSHLIKE + $BS_ICON + $BS_AUTO3STATE)
GUICtrlSetImage(-1, "shell32.dll", 7, 1)

$nCh6 = GUICtrlCreateCheckbox("-", 10, 200, 160, 160, $BS_PUSHLIKE + $BS_BITMAP)
GUICtrlSetImage(-1, "oemlogo.bmp")

GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
WEnd
Или Вы хотите, что-бы в CheckBox вместо галочки был квадрат ?
 
Автор
SNAK

SNAK

SNAK
Сообщения
59
Репутация
0
ra4o сказал(а):
Или Вы хотите, что-бы в CheckBox вместо галочки был квадрат ?
Да я хочу чтобы при нажатии появлялся квадрат ,а не галочка и можно ли изменить цвет квадрата с чёрного допустим на зелёный
 

Prog

Продвинутый
Сообщения
537
Репутация
65
Это что ли нужно?

SNAK сказал(а):
ra4o сказал(а):
Или Вы хотите, что-бы в CheckBox вместо галочки был квадрат ?
Да я хочу чтобы при нажатии появлялся квадрат ,а не галочка и можно ли изменить цвет квадрата с чёрного допустим на зелёный
Цвет зависит от темы оформления винды.
 

Вложения

  • Checkbox.zip
    13.1 КБ · Просмотры: 8

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
В таком случае сами подставляйте нужные картинки
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

Local $nCh1
GUICreate("My GUI Checkbox", 150, 100) ; Создаёт окно в центре экрана

$nCh1 = GUICtrlCreateCheckbox("", 10, 10, 20, 20, BitOR($BS_ICON, $BS_PUSHLIKE))
GUICtrlCreateLabel('Это чекбокс', 32, 12)
;Изначально чекбокс не выбран 
GUICtrlSetImage($nCh1, "imageres.dll", 105)


GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
	$msg = GUIGetMsg()
	If $msg = $GUI_EVENT_CLOSE Then ExitLoop

	If $msg = $nCh1 Then
		If GUICtrlRead($nCh1) = $GUI_CHECKED Then
			;Картинка чекбокса , если выбран
			GUICtrlSetImage($nCh1, "imageres.dll", 106)
		Else
			;Картинка чекбокса , если не выбран
			GUICtrlSetImage($nCh1, "imageres.dll", 105)
		EndIf
	EndIf

WEnd
Квадратики лень было искать, подставил первое, что нашел.
OffTopic:

Это что ли нужно?
Исходник можете прикрепить, а то ехе-шник как-то не охота запускать ;)

 
Автор
SNAK

SNAK

SNAK
Сообщения
59
Репутация
0
ra4o сказал(а):
В таком случае сами подставляйте нужные картинки
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

Local $nCh1
GUICreate("My GUI Checkbox", 150, 100) ; Создаёт окно в центре экрана

$nCh1 = GUICtrlCreateCheckbox("", 10, 10, 20, 20, BitOR($BS_ICON, $BS_PUSHLIKE))
GUICtrlCreateLabel('Это чекбокс', 32, 12)
;Изначально чекбокс не выбран 
GUICtrlSetImage($nCh1, "imageres.dll", 105)


GUISetState() ; показывает созданное окно

; Запускается цикл опроса GUI до тех пор пока окно не будет закрыто
While 1
	$msg = GUIGetMsg()
	If $msg = $GUI_EVENT_CLOSE Then ExitLoop

	If $msg = $nCh1 Then
		If GUICtrlRead($nCh1) = $GUI_CHECKED Then
			;Картинка чекбокса , если выбран
			GUICtrlSetImage($nCh1, "imageres.dll", 106)
		Else
			;Картинка чекбокса , если не выбран
			GUICtrlSetImage($nCh1, "imageres.dll", 105)
		EndIf
	EndIf

WEnd
Квадратики лень было искать, подставил первое, что нашел.
OffTopic:

Это что ли нужно?
Исходник можете прикрепить, а то ехе-шник как-то не охота запускать ;)

ошибку выдаёт на 18 строчке
 
Верх