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毫秒