如何拦截一个窗体的msgbox消息,使它在弹出之前可以取消或改作其它事情!

gaoshihonglincheng 2002-11-26 11:25:38
如何拦截一个窗体的msgbox消息,使它在弹出之前可以取消或改作其它事情!
...全文
151 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxt1980 2002-11-30
  • 打赏
  • 举报
回复
上面的大哥你哪里来得这么详细的参数介绍呀!!!
要是有全部的话给我发一份研究怎么样??
zhaoxiangtaoe@vip.sina.com
用户 昵称 2002-11-30
  • 打赏
  • 举报
回复
peekmessagge
jvhmr 2002-11-27
  • 打赏
  • 举报
回复
我们在vb中使用的msgbox实际上和ipa中的messagebox函数功能相同,

查一下api的书籍应该会有的
lihanbing 2002-11-27
  • 打赏
  • 举报
回复
去找找有关拦截DLL函数的资料吧,Msgbox应该就是调用了user32.dll中的
MessageBoxA或MessageBoxExA,只要把这两个函数拦截下来,就差不多了
litsnake1 2002-11-27
  • 打赏
  • 举报
回复
up
qdcb 2002-11-27
  • 打赏
  • 举报
回复
:)是不是想跳过注册信息的
zyl910 2002-11-27
  • 打赏
  • 举报
回复
用Hook
GLAY 2002-11-27
  • 打赏
  • 举报
回复
msgbox函数是你自己使用的,如要对话框弹出之前将其取消,那为何要用?

好果你是想通过一些判断来使msgbox显示与否,大可以用if ... then ... 来做。

MsgBox 函数

在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。

语法

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

MsgBox 函数的语法具有以下几个命名参数:

部分 描述
prompt 必要。字符串表达式,作为显示在对话框中的消息。prompt 的最大长度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
buttons 可选。数值表达式是值的总和,指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的缺省值为 0。
title 可选。在对话框标题栏中显示的字符串表达式。如果省略 title,则将应用程序名放在标题栏中。
helpfile 可选。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助文件。如果提供了 helpfile,则也必须提供 context。
context 可选。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。如果提供了 context,则也必须提供 helpfile。
设置值

buttons 参数有下列设置值:

常数 值 描述

vbOKOnly 0 只显示 OK 按钮。
VbOKCancel 1 显示 OK 及 Cancel 按钮。
VbAbortRetryIgnore 2 显示 Abort、Retry 及 Ignore 按钮。
VbYesNoCancel 3 显示 Yes、No 及 Cancel 按钮。
VbYesNo 4 显示 Yes 及 No 按钮。
VbRetryCancel 5 显示 Retry 及 Cancel 按钮。
VbCritical 16 显示 Critical Message 图标。
VbQuestion 32 显示 Warning Query 图标。
VbExclamation 48 显示 Warning Message 图标。
VbInformation 64 显示 Information Message 图标。
VbDefaultButton1 0 第一个按钮是缺省值。
VbDefaultButton2 256 第二个按钮 是缺省值。
VbDefaultButton3 512 第三个按钮是缺省值。
VbDefaultButton4 768 第四个按钮是缺省值。
VbApplicationModal 0 应用程序强制返回;应用程序一直被挂起,直到用户对消息框作出响应才继续工作。
VbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。
第一组值 (0杴5) 描述了对话框中显示的按钮的类型与数目;第二组值 (16, 32, 48, 64) 描述了图标的样式;第三组值 (0, 256, 512) 说明哪一个按钮是缺省值;而第四组值 (0, 4096) 则决定消息框的强制返回性。将这些数字相加以生成 buttons 参数值的时候,只能由每组值取用一个数字。

注意 这些常数都是 Visual Basic for Applications (VBA) 指定的。结果,可以在程序代码中到处使用这些常数名称,而不必使用实际数值。

返回值

常数 值 描述
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
说明

在提供了 helpfile 与 context 的时候,用户可以按 F1 来查看与 context 相应的帮助主题。像 Microsoft Excel 这样一些主应用程序也会在对话框中自动添加一个 Help 按钮。
如果对话框显示 Cancel 按钮,则按下 ESC 键与单击 Cancel 按钮的效果相同。如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到其它按钮中有一个被单击之前,都不会返回任何值。

注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 MsgBox。为了省略某些位置参数,必须加入相应的逗号分界符。


MsgBox 函数示例

本示例使用 MsgBox 函数,在具有“是”及“否”按钮的对话框中显示一条严重错误信息。示例中的缺省按钮为“否”,MsgBox 函数的返回值视用户按哪一个钮而定。本示例假设 DEMO.HLP 为一帮助文件,其中有一个内容代码为 1000。

Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Do you want to continue ?" ' 定义信息。
Style = vbYesNo + vbCritical + vbDefaultButton2 ' 定义按钮。
Title = "MsgBox Demonstration" ' 定义标题。
Help = "DEMO.HLP" ' 定义帮助文件。
Ctxt = 1000 ' 定义标题
' 上下文。
' 显示信息。
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' 用户按下“是”。

MyString = "Yes" ' 完成某操作。
Else ' 用户按下“否”。
MyString = "No" ' 完成某操作。
End If
gaoshihonglincheng 2002-11-26
  • 打赏
  • 举报
回复
就是在加载一个窗体时,这时弹出msgbox对话框,如何在这个对话框弹出之前将其取消!
GLAY 2002-11-26
  • 打赏
  • 举报
回复
什么意思?请详细说明,不然爱莫能助。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧