VB 版 (精华区)

发信人: Sun (大灯泡), 信区: VisualBasic
标  题: 实现超链接与顶层窗口 
发信站: 哈工大紫丁香 (Sun Aug 29 13:47:12 1999), 转信

   
  张建宇 


实现超级链接


在许多用VB编写的工具软件中,当选择“帮助”选单的“关于...”时,在出现的“
关于”对话框中经常可以见到E-mail和主页地址。这是通过调用ShellExcute()API
函数实现的,该函数声明如下:

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"(ByVal hwnd 
As Long, ByVal lpOperation As String, ByVal lpFile As String,ByVal lpParameters 
As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long其中:
hwnd是窗口句柄,lpOperation是操作选项,lpFile存放超级链接的地址。

窗体控件设置:在窗体上建立一个标签控件lblHttp, 将标签lblHttp的Caption属性设置
为任一超级链接地址,如Caption="http://zjianyu.yeah.net",为了实现类似超级链接
的形式,可将Font属性设置为蓝色并加上下划线,将MousePointer 设置为 99-
Custom , MouseIcon 属性设置为一只手的图标,这样当鼠标移动到超级链接上时指
针就变成手的形状了。

示例源代码如下:

Option Explicit

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA"(ByVal 
hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String,ByVal 
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As 
Long

Private Sub lblHttp—Click()

ShellExecute hwnd, "", lblHttp.Caption, "", "", vbNormalFocus

End Sub


保持窗口在最上层


在Windows 的许多应用程序,如 VB5 的“编辑”选单中的“查找...”窗口,不管它
是否处于被激活状态,都始终使窗口保持在最上层。利用Windows API函数在VB中
可方便地实现该功能。该函数为SetWindowPos(),声明如下:

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long,ByVal 
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long,ByVal cx As Long, 
ByVal cy As Long, ByVal wFlags As Long) As Long

其中:hwnd是窗口句柄,x, y是窗口左上角坐标,cx、xy是窗口的宽度和高度,
hWndInsertAfter是窗口清单中hWnd窗口前面的窗口句柄,各参数取值见表1。

wFlags参数作为对窗口操作的标志,各参数取值见表2。

示例源代码如下:

Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long,ByVal 
hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long,ByVal cx As Long, 
ByVal cy As Long, ByVal wFlags As Long) As Long

Const HWND—TOPMOST=-1

Const SWP—SHOWWINDOW=&H40

Private Sub Form—Load()

SetWindowPos hwnd, HWND—TOPMOST, CurrentX, CurrentY, 400, 400, SWP—
SHOWWINDOW

End Sub


 表1 
 
 HWND—BOTTOM
 
 把窗口放在窗口清单的底部
 
 

 
 HWND—TOP
 
 把窗口放在窗口清单的字符顺序的顶部
 
 

 
 HWND—TOPMOST
 
 把窗口放在窗口清单的顶部
 
 

 
 HWND—NOTOPMOST
 
 把窗口放在窗口清单的顶部
 
 

 



 表2 
 
 SWP—DRAWFRAME
 
 在窗口四周加一边框
 
 

 
 SWP—HIDEWINDOW
 
 隐藏窗口
 
 

 
 SWP—NOACTIVATE
 
 不激活窗口
 
 

 
 SWP—NOMOVE
 
 不移动窗口
 
 

 
 SWP—NOREDRAW
 
 窗口不自动重画
 
 

 
 SWP—NOSIZE
 
 窗口尺寸保持不变
 
 

 
 SWP—NOZORDER
 
 窗口的位置保持不变
 
 

 
 SWP—SHOWWINDOW
 
 显示窗口
 
 

 

 



 
 
     
     
--
〖小糊涂虫2000灌水机〗

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: sun@hope.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.140毫秒