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

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

Ответить
Настройки темы
[решено] Коды сообщений Windows - WM_ для Кнопок и чекбоксов ?

Аватара для FlatX007

Ветеран


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

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


Если есть с десяток кнопок или чекбоксов , неудобно для каждой кнопки, чекбокса... прописывать одинаковое действие, например при нажатии кнопки - проигрывание короткого звука, для чекбокса сохранение его статуса в INI файл.
Можно ли это сделать через WM_ ... чтобы при нажатии любой кнопки в с GUI окне выполнялось одинаковое действие...

Пасиба ...

Знаю есть для слайдера ... вроде
Код: Выделить весь код
GUIRegisterMsg($WM_HSCROLL  , "WM_HSCROLL"  )

Func WM_HSCROLL($hWnd, $iMsg, $iwParam, $ilParam)
EndFunc

Отправлено: 07:49, 14-09-2009

 

Аватара для Creat0R

Must AutoIt


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

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


Для общих событии есть WM_COMMAND:

Код: Выделить весь код
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
;

$hGUI = GUICreate("WM_COMMAND")

$Button = GUICtrlCreateButton("Button", 20, 80)
$CheckBox = GUICtrlCreateCheckbox("Checkbox", 20, 120)

GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUISetState()

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

Func WM_COMMAND($hWndGUI, $MsgID, $WParam, $LParam)
    Local $iIDFrom = BitAND($wParam, 0xFFFF) ; Low Word
    Local $iCode = BitShift($wParam, 16) ; Hi Word

    ConsoleWrite($iIDFrom & ":" & GUICtrlRead($iIDFrom, 1) & @CRLF)

    Return $GUI_RUNDEFMSG
EndFunc
Но я лично не стал бы это использовать, лучше так:

Код: Выделить весь код
#include <GuiConstantsEx.au3>

$hGUI = GUICreate("Events")

$Button = GUICtrlCreateButton("Button", 20, 80)
$CheckBox = GUICtrlCreateCheckbox("Checkbox", 20, 120)

GUISetState()

While 1
    $nMsg = GUIGetMsg()

    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case Else
            If $nMsg <= 0 Then ContinueLoop

            ConsoleWrite($nMsg & ":" & GUICtrlRead($nMsg, 1) & @CRLF)
    EndSwitch
WEnd

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 13:21, 14-09-2009 | #2



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

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


Аватара для FlatX007

Ветеран


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

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


Цитата Creat0R:
Return $GUI_RUNDEFMSG »
А зачем возвращается это значение ?
Global Const $GUI_RUNDEFMSG = 'GUI_RUNDEFMSG'

Отправлено: 16:26, 14-09-2009 | #3


Аватара для Creat0R

Must AutoIt


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

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


Цитата FlatX007:
А зачем возвращается это значение ? »
WM_* это Callback-функция, от возврата зависит поведение вызванного события. $GUI_RUNDEFMSG это значение по умолчанию, т.е позволить событию выполниться как и было задуманно.

Подробнее это всё описано в справке к функции GUIRegisterMsg().

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 22:29, 14-09-2009 | #4


Аватара для FlatX007

Ветеран


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

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


Цитата Creat0R:
Подробнее это всё описано в справке к функции GUIRegisterMsg(). »
Это я в курсе ,что там написано ... но только я мало что понял

Отправлено: 06:37, 15-09-2009 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
V. 5.5/2000/2003 - [решено] Скрипт для чистки общей папки от устаревших сообщений migunov Microsoft Exchange Server 2 21-11-2009 09:50
коды для samsung m310 SS3 Мобильные ОС, смартфоны и планшеты 1 25-06-2009 22:43
Интерфейс - [решено] Местонахождение сообщений Windows Svyazist Microsoft Windows 2000/XP 2 20-07-2007 18:53
Коды ошибок Windows Daid Microsoft Windows 95/98/Me (архив) 1 12-02-2004 17:26
коды ошибок Windows`a renat Хочу все знать 2 24-12-2003 19:06




 
Переход