`

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自定义弹出框.rar”所提及的资源,显然是一个包含VB代码的压缩包,用于实现不同于系统默认的弹出框功能,如提示框、确认框、消息显示框和出错提示框。这些自定义弹出框设计独特,具有吸引力,与网页中的弹出...

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

    在给定的标题“VB自定义的气泡提示框”和描述“几款漂亮的气泡提示框 不知道怎么样 大家参考参考”中,我们可以推断这是一个关于创建和设计个性化气泡提示框的示例项目。下面我们将深入探讨如何在VB中实现自定义气泡...

    VB自定义的气泡提示框

    在VB(Visual Basic)编程环境中,开发者经常需要创建各种用户...最后,实际开发过程中,可以参考压缩包中的"VB自定义的气泡提示框"文件,查看示例代码和具体实现细节,这对于理解和学习自定义气泡提示框非常有帮助。

    10多种样式的Vb弹出提示对话框【荐】

    总之,“10多种样式的Vb弹出提示对话框”是一个涵盖了VB自定义对话框设计和实现的实用资源,对于想要丰富自己程序界面的VB开发者来说,这是一个非常有价值的参考资料。通过学习和实践,开发者不仅可以掌握创建对话框...

    VB自定义的气泡提示框_源码.zip

    "VB自定义的气泡提示框_源码.zip"是一个包含VB项目源码的压缩包,用于演示如何在VB应用中实现一个自定义的气泡提示框。下面我们将详细探讨这个主题。 首先,气泡提示框是一种常见的用户界面元素,它会在鼠标悬停在...

    vb仿qq的右下角信息提示框源码 vb提示框

    在VB(Visual Basic)编程中,创建一个类似QQ右下角的信息提示框可以极大地提升应用程序的用户体验。这种提示框通常被称为气泡提示或者托盘提示,它能够在不干扰用户主界面的情况下,提供必要的信息提示。下面我们将...

    VB自定义确认框

    本示例中,我们关注的是一个名为"VB自定义确认框"的功能,通过提供的代码片段,我们可以构建一个自定义的确认框,而不是使用系统默认的MsgBox。 在VB中,通常使用MsgBox函数来弹出简单的对话框,如警告、询问或确认...

    VB 编制 信息提示框

    在VB(Visual Basic)编程中,创建一个信息提示框是一个常见的任务,用于向用户显示简短的通知、警告或询问信息。通常,VB的信息提示框功能是通过`MsgBox`函数来实现的,它允许开发者自定义消息内容、按钮、图标等...

    VB做的系统气泡提示框

    气泡提示框通常是一个小型的对话窗口,它会从鼠标指针的位置弹出,显示一些简短的信息或提示。在VB中,我们可以使用API(应用程序接口)调用来实现这个效果,或者利用内置的控件和方法。 API调用是实现气泡提示的一...

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

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

    VB自定义界面教程VB自定义界面教程

    2. 错误提示:当输入不合法时,可以弹出警告对话框或设置提示信息,指导用户正确操作。 四、自定义控件 1. 用户控件(User Control):通过组合多个内置控件,创建自定义的复合控件,以满足特定需求。 2. 扩展控件...

    页面右下角弹出消息提示框类似QQ或者MSN+ASP.NET

    使用Ajax调用这些方法,将返回的数据动态填充到前端的提示框中。 - 异步更新:使用`PageMethods`(ASP.NET WebForm)或`$.ajax`(jQuery)进行异步请求,避免刷新整个页面。 4. **自定义组件**: - 创建自定义...

    VB仿MSN弹出提示窗口程序

    在VB中创建弹出提示窗口,主要涉及到以下几个知识点: 1. **窗体控件**:首先,你需要创建一个窗体(Form),这是用户界面的基础。窗体可以包含各种控件,如文本框(TextBox)、按钮(Button)、标签(Label)等。...

    在WEB中实现类似于Windows软件的弹出窗口的代码(C#,VB)

    在提供的压缩包中,文件名如`VB`、`EeekSoft.Web.PopupWin`和`C#`可能包含使用VB.NET和C#实现弹出窗口的示例代码,而`popUpWin`可能是一个具体的弹出窗口功能的实现。通过研究这些文件,你可以得到更多实际应用的...

    漂亮的VB窗口提示框特效.rar

    "漂亮的VB窗口提示框特效.rar" 提供了一种方法,通过使用自定义控件和特效来增强传统的消息提示功能。这个资源包含了一个测试程序和核心代码,帮助开发者在VB应用程序中实现动态、美观的提示窗口。 该资源的核心是...

    vb.net弹出窗口

    例如,可以设置窗体的初始位置、大小和透明度,然后在一定时间间隔内逐步改变这些属性,模拟出类似MSN提示框的淡入或滑动效果。这通常涉及到`Timer`控件和自定义事件处理程序,以便在特定时间点执行动画步骤。 接着...

    vb.net任务栏上弹出类似QQ,MSN的消息提

    在VB.NET编程中,创建一个类似QQ或MSN的消息提示窗口是一项常见的需求,它可以在任务栏上显示一个小窗口,提供简短的信息通知。这种技术通常被称为“气泡通知”或者“托盘通知”,它允许程序在不干扰用户主界面的...

    弹出消息框的不同位置效果

    在IT行业中,弹出消息框是用户界面设计中不可或缺的一部分,它用于向用户显示通知、警告或确认信息。本文将详细探讨弹出消息框在不同位置显示的效果,以及如何通过源码来控制这些效果。我们将结合相关编程工具,探讨...

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

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

    WPF 自定义对话框 超级完美版

    在Windows Presentation Foundation(WPF)中,自定义对话框是一种常见的需求,因为它允许开发者根据应用程序的风格和功能来个性化交互体验。"WPF 自定义对话框 超级完美版"是一个解决方案,提供了预设的对话框样式...

Global site tag (gtag.js) - Google Analytics