`

VB 中自定义弹出提示框的位置

    博客分类:
  • vb
阅读更多

窗体代码:

Private Sub Command1_Click()
Dim hInst As Long
Dim
Thread As Long

'Set up the CBT hook
hInst = GetWindowLong(Me.hWnd, GWL_HINSTANCE)
Thread = GetCurrentThreadId()
hHook = SetWindowsHookEx(WH_CBT,
AddressOf WinProc1, hInst, _
Thread)

'Display the message box
MsgBox "This message box has been positioned at (0,0)."
End Sub

Private Sub
Command2_Click()
Dim hInst As Long
Dim
Thread As Long

'Set up the CBT hook
hInst = GetWindowLong(Me.hWnd, GWL_HINSTANCE)
Thread = GetCurrentThreadId()
hHook = SetWindowsHookEx(WH_CBT,
AddressOf WinProc2, hInst, Thread)

'Display the message box
MsgBox "This message box is centered over Form1."
End Sub



模块代码:

Option Explicit

Type RECT
Left
As Long
Top As Long
Right As Long
Bottom As Long
End
Type

Public Declare Function UnhookWindowsHookEx Lib "user32" ( _
ByVal hHook As Long) As Long
Public Declare Function
GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) _
As Long
Public Declare Function
GetCurrentThreadId Lib "kernel32" () As Long
Public Declare Function
SetWindowsHookEx Lib "user32" Alias _
"SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public 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
Public Declare Function
GetWindowRect Lib "user32" (ByVal hwnd _
As Long, lpRect As RECT) As Long

Public Const
GWL_HINSTANCE = (-6)
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOACTIVATE = &H10
Public Const HCBT_ACTIVATE = 5
Public Const WH_CBT = 5

Public hHook As Long

Function
WinProc1(ByVal lMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

If
lMsg = HCBT_ACTIVATE Then
'Show the MsgBox at a fixed location (0,0)
SetWindowPos wParam, 0, 0, 0, 0, 0, _
SWP_NOSIZE
or SWP_NOZORDER or SWP_NOACTIVATE
'Release the CBT hook
UnhookWindowsHookEx hHook
End If
WinProc1 = False

End Function

Function
WinProc2(ByVal lMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

Dim
rectForm As RECT, rectMsg As RECT
Dim x As Long, y As Long

'On HCBT_ACTIVATE, show the MsgBox centered over Form1
If lMsg = HCBT_ACTIVATE Then
'Get the coordinates of the form and the message box so that
'you can determine where the center of the form is located
GetWindowRect Form1.hwnd, rectForm
GetWindowRect wParam, rectMsg
x = (rectForm.Left + (rectForm.Right - rectForm.Left) /
2) - _
((rectMsg.Right - rectMsg.Left) /
2)
y = (rectForm.Top + (rectForm.Bottom - rectForm.Top) /
2) - _
((rectMsg.Bottom - rectMsg.Top) /
2)
'Position the msgbox
SetWindowPos wParam, 0, x, y, 0, 0, _
SWP_NOSIZE
or SWP_NOZORDER or SWP_NOACTIVATE
'Release the CBT hook
UnhookWindowsHookEx hHook
End If
WinProc2 = False

End
Function

 

分享到:
评论

相关推荐

    VB自定义弹出框.rar

    VB自定义的弹出框-包括提示框、确认框、消息显示框、出错提示框等等,样式和系统默认的不一样,看一下演示截图就明白了,是不是挺漂亮的提示框。和网页上的弹出层很相似,挺漂亮。

    VB自定义的气泡提示框_气泡提示框_

    几款漂亮的气泡提示框 不知道怎么样 大家参考参考

    Winform自定义消息框,好看的消息提示Alert源码

    Winform自定义消息框,好看的消息提示Alert源码,国外大神,很基础的实现,可以在此基础上进行优化和进一步调整。Winform控件、Winform优美提示框、消息框、Alert信息弹窗、Notification

    消息弹出助手 消息弹窗提示框Vb源码.rar

    一个基于vb6.0编写的消息弹出助手,具有消息弹窗和提示框的功能,Vb源码下载,给你的程序加上很酷的提示助手,并且有多种显示方式,比如从托盘显示、从按钮处显示,还可自定义显示的位置,比如顶部左边、中间显示、...

    VB 自定义Access数据库增删改例子.rar

    VB Access数据库简单操作实例,演示一些基本的操作,比如数据添加、删除、浏览、保存等功能,VB新手可学习下...请注意:若是数据库最后一条记录,如果删除将会把文件删除,是否继续删除,程序也会关闭将会弹出提示框。

    Winform自定义MessageBox

    自定义MessageBox,实现窗口倒计时自动关闭,并且可以暂停倒计时;消息框可以改变图标,弹出时根据图标的不同有不同的提示音;增加按键的Ctrl组合键快捷方式。

    VB系统托盘提示控件程序.7z

    一个系统托盘提示控件程序,运行于VB环境,可以作为邮件提示、系统提示、警告等,支持自定义标题和描述文字,支持动态调整信息框内容、支持自定义图标、可选择声音提示文件,队列弹出窗体请求,批量弹出信息框,信息...

    MsgBox 弹出窗口设计器的VB

    内容索引:VB源码,界面编程,弹出框 MsgBox弹出窗口设计器的VB源码,这个程序有点意思,主要是控制系统的Alert窗口元素的布局及对齐方式等,自定义弹出提示的内容,弹出提示的类别,主要是图标的区别,比如警告,提示...

    KIS BOS用户手册

    当点击该自定义按钮时弹出提示框“Hello,This Is My First BOS Bill InterFace!”。针对此需求,让我们一起看看如何一步一步通过BOS插件来实现: 【第一步】:由于插件是基于VB语言开发,首先需要在装有金蝶K3的环境...

    VB编程资源大全(控件 窗体1)

    (30KB) 58,sclcon.zip 不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB) 59,submenu.zip 可以在VB中自定义弹出式子菜单(8KB) 60,zlibtool.zip 较好的一个有进度显示...

    VB编程资源大全(控件 窗体2)

    (30KB) 58,sclcon.zip 不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB) 59,submenu.zip 可以在VB中自定义弹出式子菜单(8KB) 60,zlibtool.zip 较好的一个有进度显示...

    一个VB系统托盘提示控件程序

    VB源码,界面编程,托盘 一个系统托盘提示控件程序,运行于VB环境,可以作为邮件提示、系统提示、警告等,支持自定义标题和描述文字,支持动态调整信息框内容、支持自定义图标、可选择声音提示文件,队列弹出窗体请求...

    asp.net知识库

    用于弹出ModalDialog进行数据选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的...

    网际畅游 MyIE 3.0 源代码

    不弹出脚本错误提示框:在浏览某些网页时会出现脚本错误,要避免这个问题可以在MyIE选项中选中“不弹出脚本错误对话框”. 本地文件浏览:在工具栏上选择文件按钮,会出现一个类似文件管理器的窗口,其中列出了你...

    易语言程序免安装版下载

    修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库,解决GDI资源泄露,以及在使用通用组件库六时组合框标题出现重影的BUG。 5. 修改扩展界面支持库一,解决树形框...

    ASP.NET 控件的使用

    4.2.1 创建弹出式日期选择器 135 4.2.2 根据数据库表呈现日历 137 4.3 显示广告 141 4.3.1 在XML文件中保存广告 141 4.3.2 在数据库表中存储广告 144 4.3.3 跟踪显示和转到 145 4.4 显示不同的页面视图 149 4.4.1 ...

    ASP.NET的网页代码模型及生命周期

    创建一个单文件页模型,在【文件】按钮中选择【新建文件】选项,在弹出对话框中选择【Web窗体】或在右击当前项目,在下拉菜单中选择【添加新建项】选项即可创建一个.aspx页面,如图4-2所示。 图4-2 创建单文件页...

    贱贱客服系统 1.0

    客服可自定义聊天信息框中广告图片 客服可以发送邀请,邀请后客户接收页面显示邀请客服名称并且抖动及声音提示! 对接状态为3种(在线访问网址状态,开启聊天窗口状态,已经与客服对接状态),未读消息数量 ...

Global site tag (gtag.js) - Google Analytics