Hola Impadron.
En realidad no entendí bien cuál es el problema, pero yo lo tengo implementado de este modo y funciona correctamente.
Header:
Código:
...
private:
void __fastcall MouseWheel(tagMSG &Msg, bool &Handled)
...
cpp:
Código:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnMessage = MouseWheel;
}
void __fastcall TForm1::MouseWheel(tagMSG &Msg, bool &Handled)
{
if (Msg.message == WM_MOUSEWHEEL) {
Msg.message = WM_KEYDOWN;
Msg.lParam = 0;
if ((char)HIWORD(Msg.wParam) > 0)
Msg.wParam = VK_UP;
else
Msg.wParam = VK_DOWN;
Handled = false;
}
}
Saludos
Edito: El cast a
char permite el desborde que se evalua en el condicional.