Автор Тема: Наслоение шрифта в checkbox  (Прочитано 352 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн paa13 [?]

  • Новичок
  • *
  • Сообщений: 28
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Наслоение шрифта в checkbox
« Создано: Март 10, 2018, 17:03:34 »
Вот в таком коде, где надо убирать фон с checkbox, если несколько раз отметить и снять галочку на любом checkbox, то происходит странное наложение(увеличение) шрифта

Код: AutoIt [Выделить]
#include <GUIConstants.au3>
$hMain=GUICreate('',400,300)
Dim $Checkbox[5]
For $i = 0 To 4
  $Checkbox[$i] = GUICtrlCreateCheckbox("Text", 10, 13 + $i * 20, 115, 13)
Next
For $i = 0 To 4
  GUICtrlSetBkColor($Checkbox[$i], $GUI_BKCOLOR_TRANSPARENT)
Next
GUISetState(@SW_SHOW,$hMain)
While 1
$msg = GUIGetMsg()
    Select
         Case $msg= $GUI_EVENT_CLOSE
             Exit
    EndSelect
WEnd
 


Русское сообщество AutoIt

Наслоение шрифта в checkbox
« Отправлен: Март 10, 2018, 17:03:34 »

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 788
  • Репутация: 139
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #1, Отправлен: Март 10, 2018, 17:57:11 »
На версии AutoIt 3.3.14.2 ничего подобного не происходит.

Оффлайн paa13 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #2, Отправлен: Март 10, 2018, 18:06:28 »
Цитировать
На версии AutoIt 3.3.14.2 ничего подобного не происходит.

Такая же версия, вот что происходит


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 379
  • Репутация: 90
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #3, Отправлен: Март 10, 2018, 18:25:17 »
paa13, это зависит от темы. С Aero таких проблем нет

Русское сообщество AutoIt

Re: Наслоение шрифта в checkbox
« Ответ #3 Отправлен: Март 10, 2018, 18:25:17 »

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2688
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Наслоение шрифта в checkbox
« Ответ #4, Отправлен: Март 10, 2018, 18:39:35 »
paa13  [?]
Цитировать
GUICtrlSetBkColor($Checkbox[$i], $GUI_BKCOLOR_TRANSPARENT)
OffTopicЭто разве работает в 3.3.14, для чекбоксов?
Были времена, когда солнце было ярче, трава зеленее, а водка сорокоградуснее

Онлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1403
  • Репутация: 204
  • Пол: Мужской
  • Windows 7 /10 [x64]
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Наслоение шрифта в checkbox
« Ответ #5, Отправлен: Март 10, 2018, 18:56:20 »
paa13, Tempo, joiner
Цитировать
Remarks
Only Button, Label, Checkbox, Group, Radio, Edit, Input, List, Listview, ListviewItem, Treeview, TreeviewItem, Graphic, Progress, Slider and Combo controls can currently be colored.

Progress controls cannot be painted if the "Windows XP style" is used.
Checkbox, Radio, Group Progress, Combo controls cannot be painted if the "Windows XP/Vista style" is used.

paa13 в классическом стиле и так фон Checkbox-ов прозрачный (по крайней мере у меня так).

Оффлайн joiner [?]

  • Расмус-бродяга
  • AutoIt Гуру
  • *****
  • Сообщений: 2688
  • Репутация: 457
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Наслоение шрифта в checkbox
« Ответ #6, Отправлен: Март 10, 2018, 19:02:04 »
Alofa
это работает только при отсутствии элементов "под" чекбоксом.
я спросил про стиль, дающий прозрачность элементу. во всяком случае в версии 3.3.12.0 он для чеков и радио не работает

Оффлайн paa13 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #7, Отправлен: Март 10, 2018, 20:51:53 »
Спасибо за ответы! Но я так и не понял как исправить эту проблему, пока тока вариант окрашивать под цвет gui, но и тут проблема gui имеет разный цвет (я так понимаю от разных стилей или самих операционок)

Русское сообщество AutoIt

Re: Наслоение шрифта в checkbox
« Ответ #7 Отправлен: Март 10, 2018, 20:51:53 »

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3782
  • Репутация: 998
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #8, Отправлен: Март 10, 2018, 21:19:54 »
paa13  [?]
Цитировать
как исправить эту проблему
Так попробуйте
Код: AutoIt [Выделить]
#include <WinAPI.au3>
...
While 1
  Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
      Exit
    Case $Checkbox[0] To $Checkbox[4]
      _WinAPI_InvalidateRect($hMain)
  EndSwitch
WEnd


Оффлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 379
  • Репутация: 90
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #9, Отправлен: Март 10, 2018, 22:04:18 »
paa13  [?]
Цитировать
gui имеет разный цвет (я так понимаю от разных стилей или самих операционок)

Если вы не собираетесь менять цвет окна сами или ставить Chekbox поверх других элементов прозрачность вам не нужна

Но если собираетесь можете для текста попробовать использовать отдельные Label элементы
Код: AutoIt [Выделить]
#include <GUIConstants.au3>
#include <StaticConstants.au3>

Local $aCheckbox[15] = [14], $iY = 10
GUICreate("Пример")
GUISetBkColor(0xC1F1E1)
For $i = 1 To $aCheckbox[0]
    $aCheckbox[$i] = _GUICtrlCheckboxTransparent_Create("Test " & $i, 10, $iY)
    $iY += 30
Next
GUISetState()

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

Func _GUICtrlCheckboxTransparent_Create($sText, $iX, $iY, $iW = -1, $iH = -1, $iStyle = -1, $iExStyle = -1)
    Local $iCheckbox, $iOpt, $iLabel
    $iCheckbox = GUICtrlCreateCheckbox($sText, $iX, $iY, $iW, $iH, $iStyle, $iExStyle)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    GUICtrlSetData(-1, "")
    If $iW Then $iW -= 20
    $iOpt = Opt("GUICoordMode", 1)
    $iLabel = GUICtrlCreateLabel($sText, $iX + 20, $iY, $iW, $iH, BitOR($SS_LEFT, $SS_CENTERIMAGE))
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    Opt("GUICoordMode", $iOpt)
    Return SetExtended($iLabel, $iCheckbox)
EndFunc   ;==>_GUICtrlCheckboxTransparent_Create


Оффлайн paa13 [?]

  • Новичок
  • *
  • Сообщений: 28

  • Автор темы
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Наслоение шрифта в checkbox
« Ответ #10, Отправлен: Март 11, 2018, 16:20:35 »
Цитировать
InnI, Tempo
Спасибо, буду пробовать!

Русское сообщество AutoIt

Re: Наслоение шрифта в checkbox
« Ответ #10 Отправлен: Март 11, 2018, 16:20:35 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
3736 Просмотров
Последний ответ Август 31, 2011, 18:20:01
от glax24
11 Ответов
4090 Просмотров
Последний ответ Октябрь 12, 2011, 03:53:19
от Zaramot
7 Ответов
3820 Просмотров
Последний ответ Февраль 17, 2012, 21:47:11
от Dimmak
4 Ответов
4001 Просмотров
Последний ответ Сентябрь 28, 2012, 06:02:05
от Yashied
7 Ответов
2779 Просмотров
Последний ответ Декабрь 06, 2012, 23:46:37
от CreatoR
1 Ответов
1225 Просмотров
Последний ответ Май 25, 2014, 00:12:28
от CreatoR
1 Ответов
2069 Просмотров
Последний ответ Июнь 01, 2014, 18:18:24
от madmasles
2 Ответов
1303 Просмотров
Последний ответ Июль 15, 2015, 00:24:38
от Tapok
7 Ответов
1699 Просмотров
Последний ответ Февраль 24, 2016, 17:32:24
от Tapok
13 Ответов
2186 Просмотров
Последний ответ Июль 30, 2016, 00:33:57
от Alofa