修正鼠标滚轮消息传递,并增加滚轮控制摄像机距离

This commit is contained in:
hyzboy 2019-06-15 13:01:39 +08:00
parent f5414372a6
commit 4cc94b1fd5
3 changed files with 18 additions and 12 deletions

View File

@ -46,6 +46,7 @@ protected:
void OnMouseDown(int,int,uint mk){mouse_key=mk;MouseDown(mk);} void OnMouseDown(int,int,uint mk){mouse_key=mk;MouseDown(mk);}
void OnMouseUp (int,int,uint mk){mouse_key=0;MouseUp(mk);} void OnMouseUp (int,int,uint mk){mouse_key=0;MouseUp(mk);}
void OnMouseMove(int x,int y){mouse_pos.Set(x,y);MouseMove();} void OnMouseMove(int x,int y){mouse_pos.Set(x,y);MouseMove();}
void OnMouseWheel(int v,int h,uint mk){MouseWheel(v,h,mk);}
protected: protected:
@ -117,6 +118,7 @@ public:
SetEventCall(win->OnMouseDown, this,VulkanApplicationFramework,OnMouseDown ); SetEventCall(win->OnMouseDown, this,VulkanApplicationFramework,OnMouseDown );
SetEventCall(win->OnMouseUp, this,VulkanApplicationFramework,OnMouseUp ); SetEventCall(win->OnMouseUp, this,VulkanApplicationFramework,OnMouseUp );
SetEventCall(win->OnMouseMove, this,VulkanApplicationFramework,OnMouseMove ); SetEventCall(win->OnMouseMove, this,VulkanApplicationFramework,OnMouseMove );
SetEventCall(win->OnMouseWheel, this,VulkanApplicationFramework,OnMouseWheel);
return(true); return(true);
} }
@ -126,6 +128,7 @@ public:
virtual void MouseDown(uint){} virtual void MouseDown(uint){}
virtual void MouseUp(uint){} virtual void MouseUp(uint){}
virtual void MouseMove(){} virtual void MouseMove(){}
virtual void MouseWheel(int,int,uint){}
void InitCommandBuffer() void InitCommandBuffer()
{ {
@ -314,4 +317,9 @@ public:
mouse_last_pos=mouse_pos; mouse_last_pos=mouse_pos;
} }
virtual void MouseWheel(int v,int h,uint)
{
camera.Distance(1+(v/1000.0f));
}
};//class WalkerCameraAppFramework };//class WalkerCameraAppFramework

View File

@ -33,7 +33,7 @@ namespace hgl
public: public:
virtual void ProcMouseMove (int x,int y) {SafeCallEvent(OnMouseMove, (x,y));} virtual void ProcMouseMove (int x,int y) {SafeCallEvent(OnMouseMove, (x,y));}
virtual void ProcMouseWheel (int x,int y, int v,int h) {SafeCallEvent(OnMouseWheel, (x,y,v,h));} virtual void ProcMouseWheel (int v,int h,uint mb) {SafeCallEvent(OnMouseWheel, (v,h,mb));}
virtual void ProcMouseDown (int x,int y,uint mb) {SafeCallEvent(OnMouseDown, (x,y,mb));} virtual void ProcMouseDown (int x,int y,uint mb) {SafeCallEvent(OnMouseDown, (x,y,mb));}
virtual void ProcMouseUp (int x,int y,uint mb) {SafeCallEvent(OnMouseUp, (x,y,mb));} virtual void ProcMouseUp (int x,int y,uint mb) {SafeCallEvent(OnMouseUp, (x,y,mb));}
virtual void ProcMouseDblClick (int x,int y,uint mb) {SafeCallEvent(OnMouseDblClick, (x,y,mb));} virtual void ProcMouseDblClick (int x,int y,uint mb) {SafeCallEvent(OnMouseDblClick, (x,y,mb));}
@ -61,7 +61,7 @@ namespace hgl
public: public:
DefEvent(void,OnMouseMove ,(int,int)); DefEvent(void,OnMouseMove ,(int,int));
DefEvent(void,OnMouseWheel ,(int,int, int,int)); DefEvent(void,OnMouseWheel ,(int,int,uint));
DefEvent(void,OnMouseDown ,(int,int,uint)); DefEvent(void,OnMouseDown ,(int,int,uint));
DefEvent(void,OnMouseUp ,(int,int,uint)); DefEvent(void,OnMouseUp ,(int,int,uint));
DefEvent(void,OnMouseDblClick ,(int,int,uint)); DefEvent(void,OnMouseDblClick ,(int,int,uint));

View File

@ -226,20 +226,18 @@ namespace hgl
#define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam) #define WMEF2(name) void name(WinWindow *win,uint32 wParam,uint32 lParam)
WMEF2(WMProcMouseWheel) WMEF2(WMProcMouseWheel)
{ {
const int x=LOWORD(lParam); int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
const int y=HIWORD(lParam); uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
win->ProcMouseMove(x,y); win->ProcMouseWheel(zDelta,0,key);
win->ProcMouseWheel(x,y,HIWORD(wParam),0);
} }
WMEF2(WMProcMouseHWheel) WMEF2(WMProcMouseHWheel)
{ {
const int x=LOWORD(lParam); int zDelta=GET_WHEEL_DELTA_WPARAM(wParam);
const int y=HIWORD(lParam); uint key=ConvertOSKey(GET_KEYSTATE_WPARAM(wParam));
win->ProcMouseMove(x,y); win->ProcMouseWheel(0,zDelta,key);
win->ProcMouseWheel(x,y,0,HIWORD(wParam));
} }
WMEF2(WMProcSize) WMEF2(WMProcSize)