mouse是否处於不规则区域内

mouse是否处於不规则区域内

ID:19291134

大小:31.50 KB

页数:7页

时间:2018-09-30

mouse是否处於不规则区域内_第1页
mouse是否处於不规则区域内_第2页
mouse是否处於不规则区域内_第3页
mouse是否处於不规则区域内_第4页
mouse是否处於不规则区域内_第5页
资源描述:

《mouse是否处於不规则区域内》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Mouse是否处於不规则区域内Mouse是否处於不规则区域内来源:cww如果有一个不规则的封闭区域,我们如何确定Mouse是在该范围之内呢?假设有一区域如下:++P3(110,30)┃┃┃┃P6++++P1(150,70)┃/P7++/P8/*P0(100,100)上面的这个区域,是由9个点所围成的(*及+代表点),我们以*的那个点为P0,以反时锺方向循行各个点,分别是P1到P8,其萤幕座标如下:点=(X,Y)P0=(100,100)P1=(150,70)P2=(110,70)P3=(110,30)P4=(50,30)P5=(50,70)P6=(30,70)P7=(30,8

2、5)P8=(85,85)假设有一个点(Px,Py),那这个点有没有落在该区呢?这需要使用Region的观念,PtInRegionAPI函数可用来检验某个点标是否位於某一区域内,PtInRegionAPI函数含有三个叁数,叁数一须传入hRegion(handleofRegion,区域代码)、叁数二、三传入位置(X,Y),如果(X,Y)位於hRegion所定义的区域之内,则PtInRegion传回非0的值,否则传回0DeclareFunctionPtInRegionLib"gdi32"(ByValhRgnAsLong,ByValXAsLong,ByValYAsLong)AsLo

3、ng那麽剩下的就是hRegion如何取得了,有以下几种方式:hRegion=CreateRectRgn(Px1,Py1,Px2,Py2)产生一榘形Region,(Px1,Py1)(Px2,Py2)是榘形的角两点hRegion=CreateRectRgn(Px1,Py1,Px2,Py2)则是建立圆形Region,(Px1,Py1)(Px2,Py2)「围住圆形之最小方形的两个对角」而本例中的9个点则是p(0).X=100:p(0).Y=100p(1).X=150:p(1).Y=70p(2).X=110:p(2).Y=70p(3).X=110:p(3).Y=30p(4).X=50

4、:p(4).Y=30p(5).X=50:p(5).Y=70p(6).X=30:p(6).Y=70p(7).X=30:p(7).Y=85p(8).X=85:p(8).Y=85'叁数一传入阵列,叁数二传入点数,叁数三指定成ALTERNATE常数hRegion=CreatePolygonRgn(p(0),9,ALTERNATE)好了,这个东东另外可应用於何处呢?第一个,它可以用在於Region中显示图形,也就是说,如果您的Region是不规则的或圆形的,那麽该图就会只显示Region范围,这需另外用CallFillRgn(hdc,hRegion,hBrush)第三个叁数是hBru

5、sh,那代表於hDc的hRegion区域中,以hBrush的Brush将该Region填满,如果是NT,那麽hBrush可以是一个很大的BitMap图,但95只能是一个8*8的BitMap,超过了也没有用,所以了,在NT中,我们可以将一个大大的图,画在Region中,而且超出Region的部份不会画出来,那是否很有趣?而95的使用者就没有办法看到。如果,您使用SelectObject如:CallSelectObject(form1.hDc,hRegion)那麽,您在form1上的绘图,就被局限在hRegion所指的范围,画不出去了。例如上例中me.ScaleMode=3hR

6、egion=CreatePolygonRgn(p(0),9,ALTERNATE)CallSelectObject(Me.hDc,hRegion)Me.Line(10,70)-(200,70)原本会在(10,70)-(200,70)有一条水平线,但是,现在会发现线条仅在hRegion所指的区域中出现,这个留给您Testing;如果单只这个功能还没有什麽,不同的Region尚可以合并成一个Region,而且可以选择使用and、or、xor、diff、copy的方式来合并,(使用以下API)DeclareFunctionCombineRgnLib"gdi32"Alias"Comb

7、ineRgn"_(ByValhDestRgnAsLong,_ByValhSrcRgn1AsLong,_ByValhSrcRgn2AsLong,_ByValnCombineModeAsLong)AsLongPublicConstRGN_AND=1PublicConstRGN_COPY=5PublicConstRGN_DIFF=4PublicConstRGN_OR=2PublicConstRGN_XOR=3如此设计出来的Region之形状可能就变得很复杂,在上绘图便会有特殊效果。这个我也没有范例,若有兴趣的人可以试看看

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。