n DefWindowProc (hwnd, message, wParam, lParam) ; }
BLOKOUT2程式和BLOKOUT1程式一样,只是多了三行新程式码:在WM_LBUTTONDOWN讯息处理期间呼叫SetCapture,而在WM_LBUTTONDOWN和WM_CHAR讯息处理期间呼叫ReleaseCapture。检查画出视窗:使视窗小於萤幕大小,开始在显示区域画出一块矩形,然後将滑鼠游标移出显示区域的右边或下边,最後释放滑鼠按键。程式将获得整个矩形的座标。但是需要扩大视窗才能看清楚它。
拦截滑鼠并非只适用於那些古怪的应用程式。如果您需要滑鼠按键在显示区域按下时都能够追踪WM_MOUSEMOVE讯息,并直到滑鼠按键被释放为止,那么您就应该拦截滑鼠。这样将简化您的程式,同时又符合使用者的期望。
滑鼠滑轮
与传统的滑鼠相比,Microsoft
IntelliMouse的特点是在两个键之间多了一个小滑轮。您可以按下这个滑轮,这时它的功能相当於滑鼠按键的中键;或者您也可以用食指来转动它,这会产生一条特殊的讯息,叫做WM_MOUSEWHEEL。使用滑鼠滑轮的程式通过滚动或放大文件来回应此讯息。它最初听起来像一个不必要的隐藏机关,但我必须承认,我很快就习惯於使用滑鼠滑轮来滚动Microsoft
Word和Microsoft Internet Explorer了。
我不想讨论滑鼠滑轮的所有使用方法。实际上,我只是想告诉您如何在现有的程式(例如程式SYSMETS4)中添加滑鼠滑轮处理程式,以便在显示区域中卷动资料。最终的SYSMETS程式如程式7-8所示。
|