Mysz - kółko w Win16

0

Mam stary program 16 bitowy zrobiony dla Win3.1, wtedy myszy nie miały jeszcze kółek do przewijania.

System wysyła komunikat o kręceniu kółkiem w postaci:
WM_MOUSEWHEEL, flagi, scroll, x,y
gdzie: flagi, scroll -> są w WParam, każdy po 16 bit; x, y w LParam

W Win32 WParam ma 32 bity, ale w Win16 jest tylko 16 i otrzymuję jedynie te flagi
a scroll (są to obroty tego kółka) przepada.

W Win98 udało mi się to zrobić - okazało się, że te pozostałe 16 bitów można złapać funkcją:
scroll = GetMessageExtraInfo();

niestety - w Win XP jest tam zawsze zero i kółko nie działa, i nie wiem gdzie to złapać.

0

W Win3.1 nie obsłużysz kółka, w Win98 i XP robisz to normalnie.
Jeśli masz kod źródłowy wspomnianego programu to przerób go na 32 bitowy prgram.
Jeśli nie masz źródła to exe'ka raczej nie przerobisz.

Więc na czym polega problem ?

0
adf88 napisał(a)

W Win3.1 nie obsłużysz kółka, w Win98 i XP robisz to normalnie.
Jeśli masz kod źródłowy wspomnianego programu to przerób go na 32 bitowy prgram.
Jeśli nie masz źródła to exe'ka raczej nie przerobisz.

Więc na czym polega problem ?

Problem polega na tym, aby działało kółko myszy w programie 16 bitowym uruchomionym w WinXP.

To nie jest program w stylu notepada... jest trochę większy - źródła ważą około 1MB.
Przerabianie tego wszystkiego na kod 32 bitowy trwałoby pewnie kilka miesięcy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1