Что нового

[Элементы GUI] Скорость обработки цветных кнопок

Yakov_255

Новичок
Сообщения
5
Репутация
0
Здравствуете уважаемые форумчане

Подскажите как решить такую проблему: цветные кнопки обрабатываются в 4 раза медленнее чем обычные :stars:

Пример
Код:
#include <GUIConstantsEx.au3>

Opt("GUIOnEventMode", 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Window = GUICreate("Slow Gui", 201, 101, 192, 125)
GUICtrlCreateLabel("Check Click Speed", 46, 18, 95, 17)
$ClickF = GUICtrlCreateButton("1", 28, 50, 60, 25)
$ClickS = GUICtrlCreateButton("1", 104, 50, 60, 25)
GUICtrlSetBkColor(-1,0xaa0101)
GUICtrlSetOnEvent($ClickF, "Click")
GUICtrlSetOnEvent($ClickS, "Click")
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISetState(@SW_SHOW)

While 1
  Sleep(50)
WEnd

Func Click()
GUICtrlSetData(@GUI_CTRLID,GUICtrlRead(@GUI_CTRLID)+1)
EndFunc

Func CLOSEClicked()
  If @GUI_WINHANDLE = $Window Then Exit
EndFunc

Красная кнопка пропускает клики(если кликать чаще 3 раз в секунду)

как сделать быстрою цветною залитую цветом кнопку??

Вообще как можно придать цвет кнопке кроме GUICtrlSetBkColor?
 
Автор
Y

Yakov_255

Новичок
Сообщения
5
Репутация
0
[Элементы GUI] Re: [Элементы GUI] Скорость обработки цветных кнопок

Спасибо за ответ
1 Пример из Helpa GUIRegisterMsg работает тоже медленно :stars: (если внимательно почитать то там тоже GUICtrlSetBkColor)
2 Где вы тут увидели кнопку залитую цветом :blink:
3 Тут кнопки с иконками :(

Мне нужно узнать каким способом создать кнопку залитую цветом которая будет реагировать на нажатия чаще 3 раз в секунду

Попробую залитый цветом битмап... :scratch:

Можно ли поймать клик до того как кнопка начнет перерисовку?
 
Автор
Y

Yakov_255

Новичок
Сообщения
5
Репутация
0
[Элементы GUI] Re: [Элементы GUI] Скорость обработки цветных кнопок

Мне нужно чтобы кнопка быстро реагировала а не была залита супер-способом

Поковырялся я с этим GuiRegisterMsg, Это ведь обработчик событий!!!

и он ловит до нажатия кнопки! :laugh:

Сделал голый скрипт с кнопкой и работает!!!

Вот быстрая кнопка
Пример
Код:
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>

Opt("GUIOnEventMode", 1)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Window = GUICreate("Slow Gui", 201, 101, 192, 125)
GUICtrlCreateLabel("Check Click Speed", 46, 18, 95, 17)
$ClickF = GUICtrlCreateButton("1", 28, 50, 60, 25,BitOR($BS_DEFPUSHBUTTON,$BS_TOP),$WS_EX_TRANSPARENT)
$ClickS = GUICtrlCreateButton("1", 104, 50, 60, 25)
GUICtrlSetBkColor(-1,0xaa0101)
GUICtrlSetOnEvent($ClickF, "Click")
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_COMMAND, "ClickSyS")

Func ClickSyS($hWnd, $Msg, $wParam, $lParam)
	Local $nID = BitAND($wParam, 0x0000FFFF)
	If $nID==$ClickS Then GUICtrlSetData($ClickS,GUICtrlRead($ClickS)+1)
EndFunc

While 1
  Sleep(50)
WEnd

Func Click()
GUICtrlSetData(@GUI_CTRLID,GUICtrlRead(@GUI_CTRLID)+1)
EndFunc

Func CLOSEClicked()
  If @GUI_WINHANDLE = $Window Then Exit
EndFunc


Спасибо тебе за наводку AZJIO

Ураа :laugh:
 
Верх