设为首页 加入收藏

TOP

滑鼠(九)
2010-12-30 21:11:57 】 浏览:41027
Tags:滑鼠
漂亮的图形,有时则会是黑鸦鸦的一团糟(见图7-1)。
 


 

图7-1 CONNECT的萤幕显示

CONNECT的使用方法:把滑鼠游标移动到显示区域中,按下左键,移动一下位置,释放左键。对几个构成曲线的点,CONNECT能处理得很好,方法是按住左键,快速移动滑鼠,这样就可以绘制出该曲线图案。

CONNECT使用了三个简单的图形装置介面(GDI)函式,我在第五章讨论过这些函式。当滑鼠左键按下时,SetPixel为每个WM_MOUSEMOVE讯息绘制一个黑图素(对於高解析度的显示器,图素几乎看不见)。画直线需要MoveToEx和LineTo函式。

如果您在释放滑鼠按键之前把滑鼠游标移到显示区域之外,那么CONNECT就不会连接这些点,因为它没有收到WM_LBUTTONUP讯息。如果您把滑鼠移回显示区域内并按下左键,那么CONNECT将清除显示区域。如果想在显示区域外释放左键後还继续进行画图,那么可以在显示区域外按下滑鼠再移回显示区域中。

CONNECT最多可以保存1000个点。设点数为P,则CONNECT画的线数就等於P × (P - 1) / 2。如果有1000个点,则要绘制50万条直线,大约需要几分钟才能画完(时间的长短取决於您的硬体设备)。由於Windows 98是一种优先权式多工环境,因此您可以在这一段时间切换到别的程式中。但是,当程式正在忙的时候,您将无法对CONNECT程式做任何事(诸如移动或者缩放等)。在第二十章中,我们将讨论解决这一问题的方法。

因为CONNECT可能会花一些时间来绘制直线,因此在处理WM_PAINT讯息时它将切换到沙漏游标,然後再恢复原状。这要求使用两个现有游标来呼叫SetCursor。CONNECT还呼叫两次ShowCursor,一次用TRUE参数,另一次用FALSE参数。我将在本章的後面,「使用键盘模拟滑鼠」一节中更详细地讨论这些呼叫。

有时,我们使用「跟踪」这个词代表程式处理滑鼠移动的方法。但是,跟踪并不意味著,程式在视窗讯息处理程式中的某个回圈里,不断跟随滑鼠在显示器上的运动。实际上,视窗讯息处理程式处理每条滑鼠讯息,然後迅速退出。

首页 上一页 6 7 8 9 10 11 12 下一页 尾页 9/50/50
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇计时器 下一篇键盘

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目