大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> VB中不规则图形热点的实现

VB中不规则图形热点的实现

时间: 2021-07-31 作者:daque

所谓图形热门即是指定图形或图像上的某局部地区,当鼠标在这局部地区上单击或双击时,就像吩咐按钮一律会激励相映事变。笔者在vb 5顶用windows供给的三个api因变量轻快实行了任何形势的图形热门,在此简直引见这一本领的实行办法。  开始在vb第5中学兴建一"规范exe工程",树立窗体form1的scalemode属性为3。在窗体代码的证明局部设置如次三个api因变量:  private type pointapi    x as long    y as long  end type  private declare function createpolygonrgn lib "gdi32" (lppoint as pointapi, byval ncount as long, byval npolyfillmode as long) as long  private declare function deleteobject lib "gdi32"(byval hobject as long) as long  private declare function ptinregion lib "gdi32" (byval hrgn as long,byval x as long, byval y as long) as long  因变量证明:createpolygonrgn( )因变量是用来创造一个图形热门东西,lppoint参数为产生图形热门区的第一个边境点坐标,ncount参数指出了边境点的个数(如ncount<3时,将没辙产生一个封锁地区),npolyfillmode参数指定弥补形式,该因变量归来图形热门东西(long型);deleteobject( )因变量用来简略一个由hobject参数指定的东西;ptinregion( )因变量用来确定某坐标(由参数x、y指出)能否在hrgn图形热 点东西指出的热门区内,假如归来1,要不归来0。  其次在声明局部再添入下列自设置变量:  const maxcount = 30 '热门区边境点的最多个数  dim rgnpt(maxcount) as pointapi '热门数组  dim rgnobject, rgncount, flag as long  而后在form1窗体的上方创造一个picturebox控件,树立称呼为p1 ,scalemode属性为3,picture属性指定一幅bmp图像。在p1的mousemove事变和mousedown事变中添入下列代码:  private sub p1_mousedown(button as integer, shift as integer, x as single, y as single)   if button = 1 then '必需按下鼠标左键才灵验    rgnpt(rgncount).x = x    rgnpt(rgncount).y = y    rgncount = rgncount + 1   end if  end sub  private sub p1_mousemove(button as integer, shift as integer, x as single, y as single)   if ptinregion(rgnobject, x, y) = 1 then    label1.forecolor = qbcolor(12)    label1.caption = " 加入图形热门区!鼠标形势变为沙漏状!"    p1.mousepointer = 11 '树立鼠标形势为沙漏状   elseif flag = 1 then    label1.forecolor = 0    label1.caption = " 没有加入图形热门区!"    p1.mousepointer = 0   end if  end sub  接着在p1的下方并排创造两个commandbutton控件,caption属性辨别设为"创造热门"和"运用热门", 称呼辨别设为crtrgn(对应"创造热门")和dsprgn。在这两个吩咐按钮的下方创造一个label控件动作操纵 提醒区,取默许名label1,caption属性设为空,backcolor设为白色, borderstyle属性设为1,字体为黑体加粗小四号。双击crtrgn和dsprgn,在它们的click事变中辨别添入以次代码:  private sub crtrgn_click()   dim tmp as long   rgncount = 0   tmp = deleteobject(rgnobject)   label1.caption = " 在图像上单击鼠标左键来创造图形热门的范畴!"+ _    "起码应在各别场所单击三次之上,要不形不可封锁地区!"   flag = 0  end sub  private sub dsprgn_click()   rgnobject = createpolygonrgn(rgnpt(0), rgncount, 1)   flag = 1  end sub  结果在窗体代码的大肆场所添入form_load()事变:  private sub form_load()   scalemode = 3   p1.scalemode = 3  end sub  按f5运转后,开始单击"创造热门"按钮,在图像地区内的各别场所 单击鼠标左键,最佳单击三次之上,要不形不可热门区。而后单击"运用热门"按钮,在图像框内挪动鼠标,你会创造当鼠标加入热门区后, 形势变为沙漏状。正文中的步调仅为演练步调,在本质运用中,不妨事前创造好热门区数组,而后在热门区的mousedown( )事变中添入相映的代码,即可运用图形热门包办吩咐按钮。  本步调在vb5/win 95、win 98下经过。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.