Windows编程学习笔记(八)

第五章 鼠标(下)

主要是对鼠标各个信息的处理和利用,WM_MOUSEMOVE WM_LBUTTONDOWN  WM_LBUTTONUP 注意当绘制例子中的画图程序时(画矩形)如何达到鼠标按住拖动时不留下走过的痕迹呢,这就需要在WM_MOUSEMOVE里做手脚,每次受到WM_MOUSEMOVE消息,就重新画矩形,不过在画的时候加一句
SetROP2 (hdc, R2_NOT) ; 
这样当在原来的矩形上边在绘矩形时,相当于把这个矩形抹掉(注意R2_NOT)。然后再取得新的鼠标的位置,重新绘出矩形。
那么当鼠标拖动到窗口外,然后释放,又回到窗口内,那么这个程序就会出现BUG,避免的方法是设定鼠标拦截:
SetCapture(hwnd);
ReleaseCapture();
鼠标拦截,顾名思义,就是确保鼠标对于此窗口不会跑出规定的范围,的这样,就不怕鼠标跑到窗口外而引发的不理想的错误了,

你可能感兴趣的:(windows)