按下之后,用一个bool记录按下状态
松开之后,reset这个状态
在状态下的mousemove就是拖拽
用当前mousemove消息中的鼠标位置减去前一次的位置,就能得到位移
然后就能处理你要的东西了吧
WndProc 函数里
switch(message){
.......
........
case WM_LBUTTONDOWN:
//这里写上你的代码
例如:你想在屏幕上拖拽一个正方形方块(比如这个正方形方块是用Rectangle()画的,具体在WM_PAINT里面处理。)
你可以:
1)设置两个static int x,y;
2)获取鼠标位置 付给x,y
3) 然后调用InValidatRect(hwnd,&rect,TRUE);//方法名称不一定拼写正确,你自己查一下
这样就可以实现利用鼠标拖动方块的办法了。
要是拖动其他的就照葫芦画瓢
return 0;
}
鼠标按下记录一个点wm_lbuttondown
鼠标松开记录一个点wm_lbuttonup