Mouse scroll
6 отговора
137 прегледа
Mouse scroll
Niakoi moje li da mi kaje kak da hvana scroll-a na mishkata?
Vulnerant omnes, ultima necat!
Vulnerant omnes, ultima necat!
Re: Mouse scroll
Const WM_MOUSEWHEEL As Long = &H20A
Направи SubClass на някоя форма и гледай за това съобщение.
Като пристигне, във wParam и/или lParam ще имаш посоката (нагоре/надолу).
Направи SubClass на някоя форма и гледай за това съобщение.
Като пристигне, във wParam и/или lParam ще имаш посоката (нагоре/надолу).
Re: Mouse scroll
Hook-ваш си контрола,на който искаш да хванеш skroll-a
съобщението е WM_MOUSEWHEEL.
Hook-а се осъществява с API :
GetWindowLong,SetWindowLong,WindowProc,CallWindowProc
съобщението е WM_MOUSEWHEEL.
Hook-а се осъществява с API :
GetWindowLong,SetWindowLong,WindowProc,CallWindowProc
Re: Mouse scroll
Blagodaria za pomoshta, no neznam kak da "Hook-na" i kak da napravia "SubClass" na formata. Tovi VB 6 mi e dosta slojen, taka che ako mi dadete gotov source shte sam vi mnogo zadaljen. Prosto mi triabva kak da si hvana mouse wheel-a vav forma. Tova e. 10x ^_^
Vulnerant omnes, ultima necat!
Vulnerant omnes, ultima necat!
Re: Ето ти кода
Ето ти един примерен код, нямам претенции за кой знае какво но на първо време ще ти свърши работа. Сложил съм и малко коментари.
[линк]
[линк]
Re: Ето ти кода
A ne moje li da hvashta wheel-a v svoiata si forma, a ne v druga. Ei tova mi triabva. Az go prabvah, no mi zabi VB-to
Vulnerant omnes, ultima necat!
Vulnerant omnes, ultima necat!
Re: Ето ти кода
Може, да, само ще трябва да смениш Form2 със Form1, само че ако някой друг контрол е взел фокуса (например някой бутон или пък List1 съобщението ще се изпрати на него а не на формата) той ще приеме съобщението и няма да се стигне до Fun_WindowProc. За целта ще ти трябва MOUSE_HOOK за цялата ти програма, а не HOOK на определен прозорец, защото се очаква HOOK-натия прозорец да има фокуса когато мърдаш скролера на мишката. Само тогава ще получиш съобщението (нямам такава мишка за да пробвам но предполагам че е така). При MOUSE_HOOK-а няма значение къде е мишката винаги ще ти се изпълнява HOOK функцията която си задал. За MOUSE_HOOK ще трябва да се запознаеш с API-то SetWindowsHook и УнХоокВиндовсХоок... Ако искаш може и за тях да ти напиша кратък проект, но е добре преди това да разгледаш този който изтегли.
Следвай стъпките и няма да ти забие VB-то. При мен не забива. Помни, че преди да затвориш формата, трябва да натиснеш "Unhook" бутона. И не натискай бутона Stop на VB-то ако си пуснал проекта, защото тогава забива (при XP рядко но на 98 винаги).
Следвай стъпките и няма да ти забие VB-то. При мен не забива. Помни, че преди да затвориш формата, трябва да натиснеш "Unhook" бутона. И не натискай бутона Stop на VB-то ако си пуснал проекта, защото тогава забива (при XP рядко но на 98 винаги).