Ver Mensaje Individual
  #1  
Antiguo 04-10-2013
Avatar de lmpadron
lmpadron lmpadron is offline
Miembro
 
Registrado: feb 2009
Ubicación: Habana, Cuba
Posts: 204
Reputación: 16
lmpadron Va por buen camino
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

Código Delphi [-]
procedure TForm1.ApplicationEvents1Message
   (var Msg: TMsg; var Handled: Boolean) ;
var
   i: SmallInt;
begin
   if Msg.message = WM_MOUSEWHEEL then
   begin
     Msg.message := WM_KEYDOWN;
     Msg.lParam := 0;
     i := HiWord(Msg.wParam) ;
     if i > 0 then
       Msg.wParam := VK_UP
     else
       Msg.wParam := VK_DOWN;

     Handled := False;
   end;
end;

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;
       }
}
Como pueden ver en el código en Pascal no me funcionaba bien con el i > 0 porque i solo obtenía dos valores 65416 cuando se usaba el Wheel Down y 120 cuando se usaba el Wheel Up. Por lo que lo modifique en mi código en c++ poniendo i == 120
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_
________________________________________________________________________________
Responder Con Cita