vb6 picture滚动条控件的案例
一、介绍VB6 Picture滚动条控件
VB6是Visual Basic 6.0的简称,是一种基于COM(Component Object Model,组件对象模型)的集成开发环境(IDE),用于创建Windows应用程序。
在VB6中,滚动条控件是一种常见的用户界面
元素,用于在用户界面上显示可滚动内容,如图片、文本等。
Picture
滚动条控件是一种特殊的滚动条控件,可以用来显示图片并允许用户
在水平或垂直方向上滚动图片。
二、VB6 Picture滚动条控件的基本功能
1. 显示图片:Picture滚动条控件可以加载、显示各种格式的图片文件,并提供基本的图片显示功能。
2. 滚动图片:用户可以通过拖动滚动条或点击滚动条上的箭头来滚动
图片,以便查看完整的图片内容。
3. 调整图片尺寸:Picture滚动条控件通常还提供调整图片尺寸的功能,用户可以放大或缩小图片以适应显示区域。
4. 图片导航:对于包含多张图片的情况,Picture滚动条控件通常还提供导航功能,允许用户在不同的图片之间进行切换。
三、VB6 Picture滚动条控件的案例应用
下面将介绍一个实际案例,展示如何在VB6中使用Picture滚动条控
件来创建一个简单的图片浏览器应用程序。
1. 创建VB6项目:首先打开VB6 IDE,创建一个新的标准EXE项目。
2. 添加Picture滚动条控件:在VB6的工具箱中,可以找到Picture
滚动条控件,将其拖放到窗体上。
3. 导入图片:通过代码或设计时属性设置,向Picture滚动条控件中
导入一张或多张图片。
4. 设置滚动条属性:根据需要,设置Picture滚动条控件的滚动方向、滚动步长等属性。
5. 编写事件处理代码:根据用户的操作,编写相应的事件处理代码,
以实现图片的滚动、导航、尺寸调整等功能。
6. 调试和优化:在调试过程中,可以不断优化代码和界面布局,确保Picture滚动条控件的功能和外观符合预期。
7. 发布应用程序:编译应用程序并进行发布,将其部署到用户的计算
机上供其使用。
通过以上案例,可以看到,在VB6中使用Picture滚动条控件创建图
片浏览器应用程序是一项相对简单和直观的任务。
借助Picture滚动条控件强大的功能和灵活的可编程性,开发人员可以轻松实现各种图片
展示和浏览功能,为用户提供更加丰富和便捷的用户体验。
四、结语
VB6 Picture滚动条控件是一种十分实用的控件,它可以帮助开发者快速地实现图片的滚动、导航和尺寸调整等功能。
无论是用于创建简单的图片浏览器应用程序,还是集成到其他类型的应用中,Picture滚动条控件都能够大大提升应用程序的用户体验,并且减轻开发人员的工作负担。
希望本文介绍的内容能够对读者有所帮助,引起大家对VB6 Picture滚动条控件的兴趣和应用实践。
VB教程:滚动条(ScrollBar)
8、滚动条(ScrollBar)作⽤:当应⽤程序或控件不能⾃动⽀持滚动时,⽤⽔平和垂直的滚动条控件,为它们提供这⼀功能。
滚动条控件有两类:⽔平滚动条HscrollBar、垂直滚动条VscrollBar。
(1)常⽤属性见教材P135表5-13。
经常⽤到的属性有:value——当前滑动块的位置在滚动条中,滚动块所处的位置可以代表⼀个输⼊值。
value属性值即为体现滚动块在滚动条中位置的数值。
对于⽔平滚动条,当滚动块处于最左边时,value取最⼩值Min;对于垂直波动条,当滚动块处于最顶端时,value取最⼩值Min。
反之,则value值取值。
在中间的各个位置,value值与位置是严格按照⽐例来设定的。
改变滚动条value属性的⽅法有四种;直接在属性窗⼝中设定value值;⿏标单击两端箭头键改变滚动条数值;可将滚动框沿滚动条拖动到任意位置;⽤⿏标单击滚动条中滚动块两侧的部分,使滚动块以翻页的速度移动。
value属性的缺省值为O到32,767,缺省情况下,value取0和32,767中的某个数值(包括0和32,767)。
max——滚动条值min——滚动条最⼩值滚动条的value属性有取值范围的限制,取值范围由max属性和min属性设置,⼀般情况,max代表value的值,min代表value 的最⼩值。
如果希望滚动条显⽰的信息从较⼤数值向较⼩数值变化.可将Min设置成⼤于max的值。
largechange——变化量(单击滑动块)smallchange——最⼩变化量(单击箭头)(2)常⽤事件Change事件和Scroll事件单击滚动条的滚动箭头、滚动区域或滚动条的Value属性改变时、滚动条具有焦点时再按下PageUp、Pagedown键,都可以引发Change事件和Scroll事件。
两者的不同在于:单击滚动条的滚动箭头、滚动区域或拖动滚动块后,才能引发Change事件,⽽拖动滚动块时,就可引发Scroll事件。
二是利用VB的picturebox和滚动条控件编程实现
二是利用VB的picturebox和滚动条控件编程实现PICTUREBOX控件能支持许多种图像格式,但没有缩放功能并且不自动添加滚动条,所以必须自行编程实现。
应用程序使用两个图片框,一个作为包容器,可称之为父图片框,另一个作为子图片框显示图形,配合滚动条控件在父图片框内移动子图片框就可实现画面的滚动。
VB中提供了paintpicture方法,可以在窗体、图片框上的任何地方绘制图形,语法为object.PaintPicture picture, x1, y1, width1, height1, x2,y2, width2, height2, opcode,其中x1,y1为指定在object 上绘制picture的目标坐标;width1,height1 指定picture 的目标宽度和高度;x2,y2指定picture 内剪贴区的坐标width2,height2 指定picture 内剪贴区的源宽度和高度,当我们重新设定width1,height1时,就可以在子图片框内实现平滑的缩放图片。
虽然Paintpicture可以代替bitblt windows API函数,但没有API的执行速度快,如程序对速度的要求比较高,可用API函数代替paintpicture方法。
在窗体中先画出picture1作为父图片框,然后在其中中画出picture2,在窗体中再画出滚动条,picture2的autosize属性为TRUE,borderstyle属性为0,autoredraw属性为true,滚动条的largechange和smallchange属性设为合适大小,窗体既设置完毕。
以下为可以直接使用的完整程序,可以用光标键移动画面,也可以拖放方式移动画面;用加减号缩放画面。
Public c1, c2, c3, c4 As IntegerPublic tf, d1, d2, d3, d4, blf As IntegerPublic yk, yg As LongPrivate Sub Form_Load()c1 = Form1.Widthc2 = Form1.Heightblf = 100Picture2.Picture = LoadPicture("a:\ddd.jpg")yk = Picture2.Widthyg = Picture2.HeightEnd SubPrivate Sub Form_Resize()If Width > 1500 And Height > 1170 Thenc3 = Form1.Width - c1c4 = Form1.Height - c2Picture1.Move Picture1.Left, Picture1.Top, Picture1.Width + c3, Picture1.Height + c4 c1 = Form1.Widthc2 = Form1.HeightCall pEnd IfPicture2.SetFocusEnd Sub'以拖放方式滚动画面Private Sub Picture2_DragDrop(Source As Control, x As Single, y As Single)If Picture2.Height > Picture1.Height Then '通过计算鼠标移动位置,调用vscroll_change事件cccc = VScroll1.V alue + (d2 - y) '移动画面If cccc <= 0 Thencccc = 0End IfIf cccc >= VScroll1.Max Thencccc = VScroll1.MaxEnd IfVScroll1.V alue = ccccEnd IfIf Picture2.Width > Picture1.Width Thencccc1 = HScroll1.V alue + (d1 - x)If cccc1 <= 0 Thencccc1 = 0End IfIf cccc1 >= HScroll1.Max Thencccc1 = HScroll1.MaxEnd IfHScroll1.V alue = cccc1End IfEnd Sub'设置功能键,光标键移动画面,加减号缩放画面Private Sub Picture2_KeyDown(KeyCode As Integer, Shift As Integer)Select Case KeyCodeCase vbKeyLeftHScroll1.V alue = IIf(HScroll1.V alue - HScroll1.SmallChange < 0, 0, HScroll1.V alue - HScroll1.SmallChange)Case vbKeyRightIf Picture2.Width > Picture1.Width ThenHScroll1.V alue = IIf(HScroll1.V alue + HScroll1.SmallChange > HScroll1.Max, HScroll1.Max, HScroll1.V alue + HScroll1.SmallChange)End IfCase vbKeyUpVScroll1.V alue = IIf(VScroll1.V alue - VScroll1.SmallChange < 0, 0, VScroll1.V alue -VScroll1.SmallChange)Case vbKeyDownIf Picture2.Height > Picture1.Height ThenVScroll1.V alue = IIf(VScroll1.V alue + VScroll1.SmallChange > VScroll1.Max, VScroll1.Max, VScroll1.V alue + VScroll1.SmallChange)End IfCase vbKeyAddIf blf < 150 Thenblf = blf + 25Call fs(blf)End IfCase vbKeySubtractIf blf > 50 Thenblf = blf - 25Call fs(blf)End IfEnd SelectEnd SubPrivate Sub Picture2_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) d1 = xd2 = yPicture2.Drag 1Set Picture2.DragIcon = LoadPicture("a:\plane.ico")End SubSub p()'画面和滚动条重设置程序Picture2.Move 0, 0HScroll1.Top = Picture1.Height + Picture1.TopHScroll1.Left = Picture1.LeftHScroll1.Width = Picture1.WidthVScroll1.Top = Picture1.TopVScroll1.Left = Picture1.Width + Picture1.LeftVScroll1.Height = Picture1.HeightHScroll1.Max = (Picture2.Width - Picture1.Width)VScroll1.Max = (Picture2.Height - Picture1.Height)VScroll1.Visible = (Picture1.Height < Picture2.Height)HScroll1.Visible = (Picture1.Width < Picture2.Width)End SubPrivate Sub VScroll1_Change()Picture2.Top = -VScroll1.V aluePicture2.SetFocusEnd SubPrivate Sub HSCROLL1_Change()Picture2.Left = -HScroll1.V aluePicture2.SetFocusEnd SubSub fs(bl1 As V ariant) '画出缩放Dim bl As V ariantbl = bl1 / 100Form1.MousePointer = vbHourglassPicture2.Width = yk * blPicture2.Height = yg * blPicture2.RefreshPicture2.PaintPicture Picture2.Picture, 0, 0, yk * bl, yg * bl, 0, 0, yk, ygCall pIf VScroll1.Visible ThenVScroll1.V alue = IIf(VScroll1.V alue * bl > VScroll1.Max, VScroll1.Max, VScroll1.V alue * bl) End IfIf HScroll1.Visible ThenHScroll1.V alue = IIf(HScroll1.V alue * bl > HScroll1.Max, HScroll1.Max, HScroll1.V alue * bl) End IfForm1.MousePointer = vbDefaultEnd Sub一、数据库的设计数据库可以采用微软的Access97或者SQL Server来进行,首先新建一张表,取名为Table,添加三个字段,分别是:姓名Char型(SQL Server中)文本型(Access中);编号Char型(SQL Server中)文本型(Access中);照片image型(SQL Server中)OLE对象(Access 中),设计好后存盘。
VB中打造个性进度条
简介UpsUpsVB的第三方控件ccrpProgressBar是一个进度条的控件,可以有多种形态供选择。
比起VB 中自带的进度条控件ProgressBar更有个性。
UpsUps使用实例:UpsUps用ccrpProgressBar制作各式各样的进度条UpsUps在VB中自带了一个进度条控件ProgressBar,但功能简单。
我向大家推荐一个VB的第三方进度条控件ccrpProgressBar。
该控件功能强大,有多种形态供选择,而且只需要简单的设置控件的属性就能实现,非常的好用。
下面通过一个例子向大家介绍该控件的用法。
UpsUps(1)加载控件UpsUps启动Visual Basic 6.0,创建一个工程并保存为"工程1.vbp",同时产生一个名为"Form1"的窗口。
在工具箱的空白处单击鼠标右键,从弹出的快捷菜单中启动"部件"窗口,如图1所示。
UpsUpsUps图1Ups点击"浏览"按钮,从存放ccrpProgressBar控件的文件夹中找到ccrpprg.o cx文件。
UpsUps点击"应用"后ccrpProgressBar控件就添加到工具箱中。
如图2。
Ups UpsUps图2Ups(2)设计窗体和控件UpsUps向窗体中添加9个ccrpProgressBar控件和一个Timer控件。
如图3。
Ups UpsUps图3Timer控件属性页的设置如图4所示。
Interval的值设置为100,与ccrpP rogressBar控件的默认值一致。
Enabled设置为False。
UpsUpsUps图4Ups(3) ccrpProgressBar控件的主要属性UpsUps·Max:最大值。
默认100。
Ups·Min:最小值。
默认0。
Ups·Value:进度条的当前值。
Ups·Alig nment:显示表示进度的文字的位置。
vb6的垂直滚动条用法 -回复
vb6的垂直滚动条用法-回复关于VB6中的垂直滚动条用法VB6(Visual Basic 6)是一种使用了基于事件驱动的编程语言的集成开发环境。
垂直滚动条是VB6中常用的用户界面控件之一,它提供了在窗体或容器控件中处理大量数据时的滚动功能。
在本文中,我们将一步一步地回答关于VB6中垂直滚动条的用法。
第一步:添加垂直滚动条控件首先,在VB6的工具箱中找到垂直滚动条控件。
您可以通过单击“工具箱”窗口中的垂直滚动条图标或直接拖放的方式将其添加到窗体或容器控件中。
第二步:设置垂直滚动条的属性一旦垂直滚动条控件添加到窗体或容器控件中,您可以通过设置其属性来定制其外观和功能。
以下是一些常用的属性:- Name:控件在代码中的唯一标识符。
此属性是必需的,并且在代码中引用该控件时需要使用。
- Min:滚动条的最小值。
通常将此值设置为0(除非有特殊需求)。
- Max:滚动条的最大值。
此值应该是滚动区域的总大小减去窗体或容器控件的大小。
- LargeChange:当用户按下或释放滚动条的轨道时,滚动条值发生变化的幅度。
- SmallChange:当用户按下或释放滚动条上的箭头按钮时,滚动条值发生变化的幅度。
- Value:滚动条的当前值。
您可以使用此属性来获取或设置滚动条的位置。
第三步:处理滚动条的滚动事件一旦垂直滚动条控件的属性设置完毕,就可以通过处理其滚动事件来实现滚动功能。
VB6中的垂直滚动条有三个主要的滚动事件可以使用:- Change事件:当滚动条的值发生变化时触发。
- Scroll事件:在滚动条值发生变化时连续触发。
- Scroll事件:在滚动条值发生变化时连续触发。
您可以通过在窗体或容器控件的代码模块中添加这些事件来处理滚动条的滚动。
例如,以下是一个处理垂直滚动条滚动事件的示例:Private Sub VScroll1_Change()' 在此处编写滚动事件处理代码End Sub在这个事件处理程序中,您可以编写适当的代码来响应滚动条值的变化,例如在窗体或容器控件上移动和显示不同的数据。
VB6中对MSHFlexGrid控件编程模拟实现滚动条与鼠标滚轮动作
VB6中对MSHFlexGrid控件编程模拟实现滚动条与鼠标滚轮动作郝西成【摘要】@@ MSHFlexGrid控件用于对表格数据进行显示和操作,可以将文本或图片,或者文本和图片放在MSHFlexGrid的任意单元中.程序员可以在代码中指定当前单元,也可以在运行时使用鼠标或者方向键对其进行修改.【期刊名称】《卫生职业教育》【年(卷),期】2010(028)024【总页数】4页(P155-158)【关键词】MSHFlexGrid控件;美化效果;模拟鼠标动作;VB编程【作者】郝西成【作者单位】兰州资源环境职业学院,甘肃,兰州,730000【正文语种】中文【中图分类】G420MSHFlexGrid控件用于对表格数据进行显示和操作,可以将文本或图片,或者文本和图片放在MSHFlexGrid的任意单元中。
程序员可以在代码中指定当前单元,也可以在运行时使用鼠标或者方向键对其进行修改。
在对包含字符串和图片的表格进行分类、合并以及格式化时,使用MSHFlexGrid控件具有很大的灵活性。
然而MSHFlexGrid控件不能响应鼠标滚轮动作(即就是为VB6打上支持鼠标滚轮的补丁后),这就给使用者在操作时造成了不便,与此同时,该控件的滚动条颜色也未提供属性进行设置,这也给使用者在考虑程序界面的美观与统一时造成了影响。
虽然可以使用标准Windows滚动条FlatScrollBar控件加上一些自编代码代替MSHFlexGrid控件自身的滚动条使效果有所改善,亦或在VB“部件”下选择Microsoft Forms Object Library来使用它提供的可以设置颜色的滚动条加上一些自编代码来代替MSHFlexGrid控件自身的滚动条,但效果仍差强人意。
针对上述问题,在不借助第三方控件的前提下完全可以通过编程来模拟实现。
在窗体上先放置一个PictureBox控件(Picture1),再在其中放置1个MSHFlexGrid和1个PictureBox控件(Picture2),最后在Picture2中放置4个Image控件(见图1,其中Picture2内从左到右依次为Image1、Image2、Image3和Image4。
vb6-常用控件
代码设计 方法二: (计算一元二次方程的根)
Private Sub Command1_Click() a = Val(Text1) b = Val(Text2) c = Val(Text3) d=b*b-4*a*c p = -b / (2 * a)
接下页:
If d >= 0 Then
If d > 0 Then
Value 滑块所处位置所代表的值。
滚动条的事件:
1.Scroll: 拖动滑块时会触发Scroll事件。
2.Change: Value属性改变时触发Change事件。
例1. 用一个文本框(txtSpeed)显示 滚动条(hsbSpeed)滑块当前位置所 代表的值。
Sub hsbSpeed_Change() Text1.Text = HScroll1.Value
Text1.FontItalic = True Else Text1.FontItalic = False End If End Sub
检查框与单选按钮Value 属性的比较
单选钮
检查框
True: 单选钮被选定 False: 单选钮未被选定
0--Unchecked:未被选 定
1--Checked:选定
S = (a + b + c) / 2
Area = Sqr(S * (S - a) * (S - b) * (S - c))
Text4.Text = Area
End Sub
界面设计(计算一元二次方程b Command1_Click() a = Val(Text1) b = Val(Text2) c = Val(Text3) d=b*b-4*a*c p = -b / (2 * a)
vb6的垂直滚动条用法
vb6的垂直滚动条用法VB6是一种广泛使用的编程语言,其中的垂直滚动条是一种常见的用户界面控件。
垂直滚动条的主要作用是在容器控件中显示大量内容时,让用户能够方便地滚动浏览。
在VB6中,使用垂直滚动条十分简单。
以下是使用垂直滚动条的步骤:1. 首先,在VB6的窗体中添加一个容器控件,例如一个文本框或一个列表框。
这将作为垂直滚动条的内容区域。
2. 在工具箱中选择垂直滚动条控件,并将其拖放到容器控件旁边的适当位置。
3. 右键单击垂直滚动条,并选择“属性”选项。
在属性窗口中,可以对垂直滚动条的各种属性进行设置。
4. 设置垂直滚动条的最小值和最大值。
这定义了用户可以滚动的范围。
例如,如果容器控件中的内容有50行,那么最小值可以设置为1,最大值可以设置为50。
5. 设置垂直滚动条的初始值。
这将定义滚动条在初始状态下的位置。
例如,如果希望刚打开窗体时滚动条在顶部位置,可以将初始值设置为最小值。
6. 编写垂直滚动条的滚动事件处理程序。
当用户拖动滚动条时,可以使用滚动事件来处理滚动条的位置变化,并相应地更新内容区域的显示位置。
7. 在滚动事件处理程序中,可以使用垂直滚动条的Value属性来获取当前滚动条的位置。
根据这个值,可以计算出内容区域需要显示的部分,并相应地更新容器控件的内容。
使用VB6的垂直滚动条可以让用户更方便地浏览大量内容,提高用户界面的易用性和交互性。
通过正确地设置滚动条的属性和编写相应的事件处理程序,可以实现灵活而高效的滚动体验。
VB6的垂直滚动条用法包括添加容器控件、添加垂直滚动条控件、设置滚动条的属性、编写滚动事件处理程序等步骤。
正确使用垂直滚动条可以提升用户界面的交互性和易用性,让用户更方便地浏览内容。
利用VB6.0实现大图片的卷动
利用VB6.0实现大图片的卷动
段勇;白春生;张影
【期刊名称】《中国医疗设备》
【年(卷),期】2002(017)006
【摘要】使用VB6.0中提供的HscrollBar控件和VscrollBar控件并配合图形框控件实现对大图片的卷动,方便放射科医师、技术员和病房医师调用.
【总页数】2页(P51-51,53)
【作者】段勇;白春生;张影
【作者单位】北京佑安医院,北京,100054;北京佑安医院,北京,100054;北京佑安医院,北京,100054
【正文语种】中文
【中图分类】TP273
【相关文献】
1.VB6.0下利用S7-200PLC实现模拟量数据的采集 [J], 宗道治;张德强
2.利用VB6.0实现计算机与电力线路报警设备通信 [J], 王林生;吕俊霞
3.VB6.0实现图片复制的几种方法 [J], 朱广平
4.利用VB6.0编程实现全站仪三维坐标数据解算 [J], 唐超群
5.利用VB
6.0实现组合逻辑电路仿真 [J], 张鼎;王治文;钱昕华;夏夷飞;王添祺因版权原因,仅展示原文概要,查看原文内容请购买。
让MSflexgrid支持鼠标滚轮(VB6)
让Msflexgrid控件支持鼠标滚轮(VB6)Msflexgrid控件是使用非常广泛的一个控件。
但由于Msflexgrid控件不支持鼠标滚轮,给用户使用带来了不少使用上的不习惯。
网上就“让Msflexgrid控件支持鼠标滚轮”给出了具体的例子,实现方法主要集中于“子类化”,使用全局鼠标钩子的很少。
虽然这些例子解决了“让Msflexgrid控件支持鼠标滚轮”这个问题,但依然有一些小问题,那就是自由度还不够(或者说需要自己用代码控制以免出错),比如滚动一页,比如滚轮定位。
下面,我将自己测试得到的成果介绍如下。
(PS:后面我还附加了判断MSFGrid控件是否有滚动条的方法)(再PS:如果要引用本文,请注明出处)'在Module模块里的代码:'API函数和常数申明Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_WNDPROC = (-4)Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Const WM_MOUSEWHEEL = &H20APrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function GetScrollRange Lib "user32 " (ByVal hWnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As LongPrivate Const SB_HORZ = &H0Private Const SB_VERT = &H1Private Declare Function GetFocus Lib "user32" () As LongPrivate Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long'定义变量Private lhWnd As Long, SubhWnd As LongPrivate FhWnd As Long, L As Long, clsName As StringPublic MSFG As MSFlexGrid'启动子类化,传入Form1.hWndPublic Sub Start_SubClass(ByVal hWnd As Long)lhWnd = hWndSubhWnd = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf SubClass)End Sub'结束子类化Public Sub Exit_SubClass()Call SetWindowLong(lhWnd, GWL_WNDPROC, SubhWnd)End Sub'子类化函数Public Function SubClass(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongSubClass = CallWindowProc(SubhWnd, hWnd, Msg, wParam, lParam)If Msg = WM_MOUSEWHEEL Then'测试消息用'Form1.Print Hex(wParam)'Call MoveMSFGWheel_A(wParam) '方法一Call MoveMSFGWheel_B(wParam) '方法二End IfEnd Function'方法一Private Sub MoveMSFGWheel_A(wParam As Long)'判断是否有MSFlexGrid获得焦点,需要在MSFlexGrid的GotFocus事件里设置Set MSFG =MSFlexGrid1,在MSFlexGrid的LostFocus事件里设置Set MSFG =NothingIf Not MSFG Is Nothing ThenWith MSFGSelect Case wParamCase &H780000 '向上滚滚动条If .TopRow > .FixedRows Then .TopRow = .TopRow - 1Case &H780008 '按住Ctrl向左滚滚动条If .LeftCol > .FixedCols Then .LeftCol = .LeftCol - 1Case &HFF880000 '向下滚滚动条If .TopRow < .Rows - 2 Then .TopRow = .TopRow + 1Case &HFF880008 '按住Ctrl向右滚滚动条If .LeftCol < .Cols - 2 Then .LeftCol = .LeftCol + 1End SelectEnd WithEnd IfEnd Sub'方法二'垂直'Call SendMessage(MSFlexGrid1.hwnd, 277, 0, 0) '往上滚'Call SendMessage(MSFlexGrid1.hwnd, 277, 1, 0) '往下滚'Call SendMessage(MSFlexGrid1.hwnd, 277, 2, 0) '往上滚一页'Call SendMessage(MSFlexGrid1.hwnd, 277, 3, 0) '往下滚一页'Call SendMessage(MSFlexGrid1.hwnd, 277, &HE0004, 0) '跳到第14行'Call SendMessage(MSFlexGrid1.hwnd, 277, 6, 0) '顶部'Call SendMessage(MSFlexGrid1.hwnd, 277, 7, 0) '底部'水平'Call SendMessage(MSFlexGrid1.hwnd, 276, 0, 0) '往左滚'Call SendMessage(MSFlexGrid1.hwnd, 276, 1, 0) '往右滚'Call SendMessage(MSFlexGrid1.hwnd, 276, 2, 0) '往左滚一页'Call SendMessage(MSFlexGrid1.hwnd, 276, 3, 0) '往右滚一页'Call SendMessage(MSFlexGrid1.hwnd, 276, &HE0004, 0) '跳到第14列'Call SendMessage(MSFlexGrid1.hwnd, 276, 6, 0) '左边缘'Call SendMessage(MSFlexGrid1.hwnd, 276, 7, 0) '右边缘'知道了上面那些消息,就能很自由的控制MSFlexGrid了,'当然,结合LeftCol和TopRow属性来控制,那就更完美了。
VB6实现窗口图像缩放、滚动技巧(转)
VB6实现窗口图像缩放、滚动技巧(转).txt假如有一天你想哭打电话给我不能保证逗你笑但我能陪着你一起哭。
坚强的基本,就是微笑。
面具戴久了丶就成了皮肤≈作者:歪书生email: netnerd@日期:8/9/2001 4:29:58 PMVB6实现窗口图像缩放、滚动技巧Visual Basic是Windows平台中最常用的应用软件开发语言,窗口图像缩放、滚动是图像处理、多媒体数据库等应用软件开发中的基本功能。
本文将介绍如何用VB 6.0实现地窗口图像缩放和滚动技巧,供读者在各种语言系统开发中参考。
一、获取图像本文所介绍的图像缩放并没有对真正的图像进行缩放,而是复制一幅窗口图像的真实画面,对这个窗口图像附本进行局部缩放和滚动,获取窗口图像可使用Windows的API函数来实现。
具体来说,实现窗口图像缩放、滚动需要用GetDeskTopWindow()函数获取桌面窗口句柄,再通过GetDC()函数转换为描述表句柄,则用BitBlt()函数把桌面图像复制到任意图形容器控件中,桌面图像复制完成后,再用ReleaseDC释放窗口描述表,各API函数的具体使用方法参见本文的例子程序。
本文所用的API函数包含在WIN95/98的GDI32.DLL和USER32.DLL动态链接库中,在使用时可通过VB6.0的TEXT VIEWER复制到所开发的应用程序中。
二、图像缩放图像缩放显示的基本原理就是把原图像的一部分缩放后再送入窗口的图形容器控件中,在VB 中可用内部命令PaintPicture来进行,语法格式为:PaintPicturePic,DestX,DestY,DestWidth,DestHeight,ScrX,ScrY,ScrWidth,ScrHeight 其中,Pic为图片对象,如图形控件对象等;DestX,DestY 为目标图像起始坐标; DestWidth,DestHeight 为目标图像幅面尺寸;ScrX,ScrY 为源图像起始坐标;ScrWidth,ScrHeight 为源图像剪裁尺寸。
