VB编程的必备技巧

VB编程的必备技巧,第1张

对编程者来说,VB很容易上手,但要深入、灵活地驾驭它还要下一番功夫。笔者在这里介绍几个较为典型的编程技巧,希望能对广大VB爱好者有所帮助。

一怎样创建自定义的光标

1当在设计一个应用程序时,Visual Basic允许程序员将许多控件的MousePointer属性设计成12个预先定义好的鼠标光标之一。然而,有些程序员或许会希望显示一个预定义形状之外的光标。本文说明如何创建一个不同的鼠标指针(光标),包括为一个没有MousePointer属性的控件创建光标。

要在Visual Basic应用程序中将光标(鼠标指针)改变成个不同的形状,可以添加代码来改变希望监视的控件的MouseMove和DragOver事件。

MouseMove事件所包含的代码用于触发该控件的Drag方法。当鼠标在被选中的控件上移动的时候,轮流显示新的鼠标指针。当鼠标指针离开该控件时,则DragOver事件被触发。在Visual Basic程序中,可以重新复位此Drag属性,以便以前的鼠标指针能够被再次显示出来。

2下面的样例程序实现当鼠标指针移动到一个文件列表框控件上时,将其改变成不同的形状。

首先采用缺省的方法建立Form1。在Form1上添加一个文件列表框控件,采用缺省的方法建立File1。将File1控件的DragIcon属性设置为所选择的ICO文件。

将如下代码添加到File1的MouseMove事件中:

Private Sub File1-MouseMove(ButtonAs

Integer, Shift As Integer, X As Single, Y As Single)

File1Drag 1 ''icon on

End Sub

---- 将如下代码添加到Form1的DragOver事件中:

Private Sub Form-DragOver(Source As Control,

X As Single, Y As Single, State As Integer)

File1Drag 0 ′icon off

End Sub

按下F5功能键执行此程序。得到的运行结果是:将鼠标指针移动到该文件列表框控件上时,程序将把所选中的ICO文件作为缺省的鼠标光标;将鼠标指针离开该控件时,光标则会自动恢复为缺省的形状。

二怎样在窗体上点鼠标右键产生一个d出式选单(PopUp Menu)?

大家都知道,在Windows95/98/2000的桌面和许多流行软件的视窗中,当我们点鼠标右键时,会在鼠标的当前位置d出一个快捷选单。许多爱好编程的朋友是不是也希望能在自己的程序里有类似的功能呢?其实,这并不困难。笔者经过一番努力,在VB下找出一个通用的方法,供大家分享。

要实现上述功能,需分两个步骤:

1 利用VB的选单我器(Menu Editor)我你希望d出的选单及子选单,注意,要将选单的Visible属性设置为:False。

2 在窗体(Form1)的MouseDown事件中编写程序,来激发我好的选单,假设选单名为PopMenu,程序源码如下:

Private Sub Form-MouseDown

(Button As Integer, Shift As Integer,

X As Single, Y As Single)

If Button = vbRightButton Then

PopMenuVisible = True

PopupMenu PopMenu

End If

End Sub

上述方法是针对窗体的,我们也可以针对任意控件,用鼠标右键点击控件时,也d出一个快捷选单。方法也很简单,只要把上述代码放到相应控件的MouseDown事件中,就可以了。

三怎样动态地在窗体上判断某区域内是否有控件存在?

在笔者的一个小程序中,想在窗体的某个区域输出数据,这就要求在这个区域内不能有其他控件存在,那么,怎么才能知道在窗体的某个区域内,是否有控件存在呢?

为了判断在窗体的某个区域中,是否含有控件,我们可以利用以下VB程序来实现:

Function GetControl(x1 As Single, y1 As Single,

x2 as Single, y2 as Single) As Control

Dim Control as Control

For Each Control In Form1

With Control

If (x1 〈= Left) And (x2 〉= Left) And _

(y1 〈= Top) And (y2 〉= Top) Or _

(x1 〈=Left + Width) And (x2 〉= Left + Width) And _

(y1 〈= Top) And (y2 〉= Top) Or _

(x1 〈= Left) And (x2 〉= Left) And _

(y1 〈= Top + Height) And (y2 〉= Top + Height) Or _

(x1 〈= Left + Width) And (x2 〉= Left + Width) And _

(y1 〈= Top + Height) And (y2 〉= Top + Height) Then

Set GetControl = Control

Exit Function

End If End With

Next

Set GetControl = Nothing

End Function

注:(x1, y1)和(x2, y2)分别为选定矩形区域的左上角和右下角点的坐标值。

该程序通过计算窗体上所有控件的四个角的位置来判断控件是否与选定区域相交,并返回相交的控件。

用VB做的一个简单windows画图板,具有画图板的基本功

>

好麻烦哟!终于作好了!

Dim Ht As Boolean

Private Type Zb

X0 As Long

Y0 As Long

End Type

Dim Cszb As Zb

Private Sub Command1_Click()

Ht = True

End Sub

Private Sub Command2_Click()

Ht = False

End Sub

Private Sub Command3_Click()

Picture1Cls

End Sub

Private Sub Command4_Click()

Dim Ys As Integer

Ys = InputBox("请填入正整数,0:黑色,1:红色,2:**,3:绿色,4:蓝色,>5:白色", "设置颜色", 0)

Select Case Ys

Case 0

Picture1ForeColor = &H0&

Case 1

Picture1ForeColor = &HFF&

Case 2

Picture1ForeColor = &HFFFF&

Case 3

Picture1ForeColor = &HFF00&

Case 4

Picture1ForeColor = &HFF0000

Case Else

Picture1ForeColor = &HFFFFFF

End Select

End Sub

Private Sub Command5_Click()

Dim Kd As Integer

Kd = Int(InputBox("请输入线条宽度", "线条宽度", 1))

If Kd < 1 Then Kd = 1

Picture1DrawWidth = Kd

End Sub

Private Sub Command6_Click()

End

End Sub

Private Sub Form_Load()

MeCaption = "简单画笔"

Command1Caption = "开始画图"

Command2Caption = "停止画图"

Command3Caption = "画板清空"

Command4Caption = "设置颜色"

Command5Caption = "设置宽度"

Command6Caption = "退出"

Picture1AutoRedraw = True

Ht = False

Ys = 0

End Sub

Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

CszbX0 = X

CszbY0 = Y

End Sub

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Ht And Button = 1 Then

Picture1Line (CszbX0, CszbY0)-(X, Y)

CszbX0 = X

CszbY0 = Y

End If

End Sub

不知道你说的这个VB程序是编译后的可执行文件还是源程序,如果是源程序,那么你用VB打开其工程文件就能看到了。如果是可执行文件,那对不起,你要看到代码那就很难了,要是随随便便就能看到软件的代码,那么所有程序员的饭碗就都是纸糊的了

以上就是关于VB编程的必备技巧全部的内容,包括:VB编程的必备技巧、用vb做一个画图板,要求要能画,直线,曲线,矩形,圆。能调画笔的粗细,还有用滚轮调色。求解答啊!、VB课程设计:简单画笔的实现 VB课程设计留了这个作业,那个创新的填颜色部分不会,求指导。。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10168237.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存