FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
usar la ruedita del mouse en Builder 6
Saludos,
Recientemente encontré un código para implementar el uso de la rueda del mouse (wheel) en los Grid y otros componentes. El código estaba en Pascal y como trabajo con C++ lo traduje quedando algo asi Código Pascal en el sitio web
Una ves traducido quedó algo asi. Código C++ Código:
void __fastcall TForm3::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { int i; if (Msg.message == WM_MOUSEWHEEL) { Msg.message = WM_KEYDOWN; Msg.lParam = 0; i = HIWORD(Msg.wParam); if (i == 120) { Msg.wParam = VK_UP; } else { Msg.wParam = VK_DOWN; } Handled = false; } } La pregunta concreta es, eso esta bien, I siempre obtiene esos valores en c++ o pueden variar, en caso de variar debería poner la condición i > algo, pues cual seria ese algo? Gracias de antemano por su tiempo
__________________
Nunca esta de más volver a ver la "Guia de Estilo" o "La Otra Guia de Estilo". Recuerda siempre usar los "Tags" para una mejor legibilidad de tu código. Cuando miras fijamente al abismo, este te devuelve la mirada oo______ooo_____ooo_ooooooo_____ooo____oooooo____ooooooo______oooo____ooo____oo_ oo______oooo___oooo_oo____oo__oo___oo__oo____oo__oo____oo___oo____oo__oooo___oo_ oo______oo_oo_oo_oo_oo____oo_oo_____oo_oo_____oo_oo____oo__oo______oo_oo_oo__oo_ oo______oo__ooo__oo_oooooo___ooooooooo_oo_____oo_ooooooo___oo______oo_oo__oo_oo_ oo______oo_______oo_oo_______oo_____oo_oo____oo__oo____oo___oo____oo__oo___oooo_ ooooooo_oo_______oo_oo_______oo_____oo_oooooo____oo_____oo____oooo____oo____ooo_ ________________________________________________________________________________ |
#2
|
||||
|
||||
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) ... 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; } } Edito: El cast a char permite el desborde que se evalua en el condicional.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 04-10-2013 a las 23:14:38. Razón: comentario |
#3
|
|||
|
|||
En lugar de HIWORD, hay una macro pensada para esto:
GET_WHEEL_DELTA_WPARAM(Msg.wParam) |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
duda con Shapes y mouse move en C++ Builder | paton | C++ Builder | 2 | 18-11-2008 12:27:12 |
Capturar 'ruedita' del ratón | Jose_Pérez | API de Windows | 6 | 11-04-2008 15:08:10 |
usar el mouse en DBLookup, se puede ? | JuanHC | Conexión con bases de datos | 2 | 23-11-2007 10:49:29 |
usar imagen en builder | cocke | C++ Builder | 2 | 27-11-2006 02:44:10 |
Usar builder en otra pc... | pagoti | C++ Builder | 4 | 05-02-2005 21:29:11 |
|