|
VB编程的必备技巧(2) ---- 三.怎样动态地在窗体上判断某区域内是否有控件存在?
---- 在笔者的一个小程序中,想在窗体的某个区域输出数据,这就要求在这个区域内不能有其他控件存在,那么,怎么才能知道在窗体的某个区域内,是否有控件存在呢?
---- 为了判断在窗体的某个区域中,是否含有控件,我们可以利用以下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)分别为选定矩形区域的左上角和右下角点的坐标值。 ---- 该程序通过计算窗体上所有控件的四个角的位置来判断控件是否与选定区域相交,并返回相交的控件。
---- 四.获取和修改计算机名字的方法
---- 在Win 95/98/2000中,计算机有一个名字。运行regedit,在"HKEY-LOCAL-MACHINE\System\CurrentControlSetcontrol\ComputerName\ComputerName"中将发现"ComputerName"="Default"( 或其它字符串),在regedit下可以查看和修改这个名字。我们还可在程序中通过Win32API提供的GetComputerName、SetComputerName这两个函数来查看和修改计算机的名字。下面以VB为例来探讨如何编写一个可查看和修改计算机名字的程序。
---- 1.插入一个新模块,在其中添加如下代码:
′声明 GetComputerName Declare Function GetComputerName Lib″kernel 32″Alias″ GetComputerNameA″(Byval lpBuffer As String,nSize As Long)As Long ′声明 SetComputerName Declare Function SetComputerName Lib″kernel 32″Alias ″ SetComputerNameA″(Byval lp ComputerName As String)As Long ′定义一个获取计算机名字的函数 Public Function GetCName (CName) As Boolean Dim sComputerName As String '计算机的名字 Dim lComputerName As Long '计算机名字的长度 Dim lResult As Long 'GetComputerName的返回值 Dim RV As Boolean ′GetCName返回值,若为TRUE则表示操作成功 lComputerNameLen=256 sComputerName=Space (lComputerNameLen) lResult=GetComputerName (sComputerName,lCompputerNameLen)
|