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

Показать сообщение отдельно

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


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

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


Creat0R,
Цитата:
Пока оставил пост в разделе по GUI
Спасибо!

Вот ещё пример с колёсиком мыши и слайдером - наверное здесь тоже происходит "поглощение":

При изменении позиции слайдера колесом мыши, GUIGetMsg() не срабатывает, а загружать основной цикл постоянными запросами тоже не хочется. Вот как раз здесь-то и пригодилась бы $WM_MOUSEWHEEL - для того чтобы получать значение слайдера при повороте колеса мыши (если он в фокусе). Но увы... именно когда он в фокусе, событие $WM_MOUSEWHEEL перестаёт обрабатываться.
Код: Выделить весь код
#include <GUIConstants.au3>
$HWnd = GUICreate("MOUSEWHEEL_TEST",400,300)
$BUTTON  =  GUICtrlCreateButton("Get Value",10,10,70,20)
$SLIDER =  GUICtrlCreateSlider(10,70,300,20)
$INPUT  =    GUICtrlCreateInput("0",10,100,30,18,BitOR($ES_READONLY,$ES_CENTER))
Global Const $WM_MOUSEWHEEL = 0x020A
GUIRegisterMsg($WM_MOUSEWHEEL,"Get_MouseWheel")
GUISetState()

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case -3
            Exit
        Case $SLIDER
            GUICtrlSetData($INPUT,GUICtrlRead($SLIDER))
        Case $BUTTON
            MsgBox(0,"Текущее значение слайдера:",GUICtrlRead($SLIDER))
    EndSwitch
WEnd

Func Get_MouseWheel($HWnd,$Command,$wParam,$lParam)
    Switch $wParam
        Case 0x00780000 ; UP
            Beep(100,40)
        Case 0xFF880000 ; DOWN
            Beep(80,40)
    EndSwitch
EndFunc

Отправлено: 09:57, 13-09-2007 | #446