- 浏览: 209783 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (137)
- Android (12)
- linux (9)
- rails (3)
- 经验总结 (39)
- 工作、项目 (9)
- 生物信息,blast (2)
- java (12)
- 论点 (1)
- sql (9)
- javascript (1)
- vb (8)
- 发布的程序 (1)
- 感动编程 (1)
- asp (3)
- excel (1)
- iis (1)
- access (2)
- matlab 图像 (2)
- matlab (2)
- jQuery (2)
- MAMP PRO (1)
- orcal mac os python (1)
- regular expression (1)
- linux grep awk (1)
- numpy (1)
- h5py (1)
- Heritrix (1)
- servlet (1)
- hadoop (1)
- copyFromLocal (1)
- 气象 (0)
最新评论
-
xiaoyao3857:
这是什么原理呢?还有,为什么我设好之后,运行appletvie ...
警告:不能读取 AppletViewer 的属性文件解决 -
阿浊I:
I think so,this work had done a ...
How to change max_allowed_packet value in mysql? -
zhuorulin:
丁林.tb 写道 If you don't use globa ...
How to change max_allowed_packet value in mysql? -
丁林.tb:
If you don't use global or use ...
How to change max_allowed_packet value in mysql?
所谓图形热点就是指定图形或图像上的某部分区域,当鼠标在这部分区域上单击或双击时,就像命令按钮一样会引发相应事件。笔者在VB 5中用Windows提供的三个API函数轻松实现了任何形状的图形热点,在此具体介绍这一技术的实现步骤。
首先在VB5中新建一"标准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下通过。
发表评论
-
pygrib basemap matlibplot环境安装
2017-07-14 10:47 0话不多说,直奔主题 我是再suse下离线安装的,所以搞得 ... -
spring 定时任务
2015-09-16 12:44 1038这里使用的是Spring2.5,需要的jar包:spring ... -
三年博士干的事
2014-12-22 10:08 778见附件墙报 所谓的利用matlab,c++,php,基于 ... -
文本分类入门(番外篇)特征选择与特征权重计算的区别
2013-05-22 09:02 2046在文本分类的过程中 ... -
文本分类入门(十一)特征选择方法之信息增益
2013-05-22 09:03 1768前文提到过,除了开方检验(CHI)以外,信息增益(IG ... -
SVM入门(十)将SVM用于多类分类
2013-05-22 09:03 890从 SVM的那几张图可以看出来,SVM是一种典型的两类 ... -
SVM入门(九)松弛变量(续)
2013-05-22 09:03 769接下来要说的东西其实不是松弛变量本身,但由于是为了使用 ... -
SVM入门(八)松弛变量
2013-05-22 09:03 1025现在我们已经把一个 ... -
SVM入门(七)为何需要核函数
2013-05-19 16:27 953生存?还是毁灭?——哈姆雷特 可分?还是不可分?——支持 ... -
SVM入门(六)线性分类器的求解——问题的转化,直观角度
2013-05-19 16:26 928让我再一次比较完整 ... -
SVM入门(五)线性分类器的求解——问题的描述Part2
2013-05-19 16:25 865从最一般的定义上说 ... -
SVM入门(四)线性分类器的求解——问题的描述Part1
2013-05-19 16:25 885上节说到我们有了一个线性分类函数,也有了判断解优劣的标准— ... -
SVM入门(一)至(三)Refresh
2013-05-19 16:24 875(一)SVM的八股简介 ... -
matlab文件及文件夹操作
2013-02-23 13:07 84861.matlab中读取一行多个 ... -
matlab 矩阵求和计算
2012-11-10 12:50 1892matlab中针对的数据大多是以矩阵形式来处理,求和函数是su ... -
vb动态数组
2012-07-19 21:28 988最近老板逼着弄GIS ,找到了mapobject是空间,使用过 ... -
关于 surfaceview 背景覆盖的问题
2012-02-16 15:18 3025本人开发过程中,发现出了黑色,不能设置其他颜色,如果设置了,就 ... -
关于 Failed to start monitoring 0A3AAA401902A029 错误
2012-02-12 10:07 2317在android开发的时候,在前面的文章中有说到连接真机开发, ... -
两个activity之间的Intent 传值
2012-02-11 23:32 1848看了很多,总结以下首先activity1和activity2之 ... -
VB中的图像用HScroll1,VScroll1 空间如何操作
2006-03-27 18:06 1201试过了,绝对正确的哦,呵呵,前提是图像要足够大的看不到,然后才 ...
相关推荐
通过上述分析可以看出,在VB中实现不规则图形热点检测是一项实用且有趣的技术。它不仅加深了我们对Windows API的理解,还能够帮助开发者提高图形界面的交互性和用户体验。此外,该技术还有助于拓展VB的应用领域,使...
目前,在软件中实现与硬件设备的数据交换有以下一些方法: 1.编写特定设备的驱动程序。这种方式是最多和最常见的手段,一般使用VC、VB、Delphi的高级语言进行纯粹的程序开发。这种方法不仅可以开发数据采集程序,...
but.zip 在对话框中更替控件(24KB)<END><br>74,flat_but.zip 浮动按纽上可放置文字和ICON图标(48KB)<END><br>75,mow_sour.zip 弹出PopMenu,但是是按纽选择(17KB)<END><br>76,Xbutton.zip 不规则形状的...
福兴讯V587对讲机写频,调频软件。福摩斯特V587对讲机写频,调频
app开发
内容概要:本文介绍了LangChain这一开源框架,它专为开发基于大型语言模型(LLM)的应用程序而设计。文章阐述了LangChain的核心理念、架构组成及其重要性。LangChain通过模块化设计解决了大模型应用开发中的效率低下和局限性问题,提供了标准化的接口和丰富的抽象层,使开发者能够轻松接入不同大模型并构建高效的应用程序。文中详细讲解了几个关键模块,包括Model I/O、Retrieval、Chains、Memory、Agents和Callbacks,以及如何安装和使用LangChain进行开发。此外,还展示了具体的代码示例,如如何调用OpenAI的API、构建LLMChain链路、设置回调机制和实现对话记忆功能。 适合人群:对大语言模型有一定了解并且有兴趣开发基于LLM的应用程序的研发人员和技术爱好者。 使用场景及目标:①帮助开发者快速掌握LangChain的基本概念和使用方法;②提供实用的代码示例,便于开发者实际操作;③解释如何通过LangChain克服大模型应用开发中的常见难题,如模型差异、输出不稳定等。 阅读建议:鉴于LangChain涉及较多的专业术语和技术细节,建议读者在阅读时结合官方文档和示例代码一起学习,尤其是对于核心模块的理解和实践。同时,关注GitHub上的最新版本更新,以获取最新的特性和改进。
网络伴侣 iCompanion 2.1 网络计费软件,功能全面,支持ISDN
app开发
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
app开发
移动开发_Flutter_轮子推荐_开发效率提升_1742851671.zip
内容概要:本文详细介绍了往复活塞杆密封件在瞬态条件下热弹流润滑仿真的Python实现。首先定义了几何、材料和工况参数,然后分别构建了流体力学、热力学和固体力学模型。流体力学模型使用有限差分法求解瞬态雷诺方程,热力学模型考虑了温度和压力对粘度的影响,固体力学模型则采用了Mooney-Rivlin超弹性模型和Prony级数描述的粘弹性松弛。最后通过耦合求解实现了整个系统的时间积分,并绘制了液膜厚度和压力分布图。文中还讨论了模型的特点、简化假设以及扩展建议。 适合人群:机械工程领域的研究人员和技术人员,尤其是对密封件性能优化感兴趣的从业者。 使用场景及目标:适用于研究往复活塞杆密封件的工作机理及其在不同工况下的表现,帮助工程师理解和预测密封件的动态特性,从而改进设计和选材。 其他说明:该实现基于论文中的理论框架,但在实际应用时可能需要进一步调整和完善。
人人商城V3-3.2.1版本.zip 亲测能用
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
Java面向对象编程,出现的示例代码
蓝桥杯python,蓝桥杯python相关资源,真题,蓝桥杯,蓝桥杯Python练习系统题库,蓝桥杯Python练习系统题库
rgrgdfsegfasgrsredgf
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。