下面是按Command1钮弹出的对话框,如何加一组代码,实现点击窗体的关闭钮也弹出同样的对话框?
Private Sub Command1_Click()
If MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbYes Then
Unload Me
End
Else
Cancel = True
End If
End Sub
Private Sub Command1_Click()
If MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbYes Then
Unload Me
End
Else
Cancel = True
End If
End Sub
解决方案 »
- sysdzw 你不服你押1000,5月份第一名是dbcontrols,总分大于3000
- 各位高手,如何将这种复杂Excel报表中需要的内容有选择的导入到Access中呢?
- 远程连接sql server的方法
- 关于SQL连接模块问题
- 请教各位大虾一个老问题!有谁用过CGZipFiles这个类?我用它压缩文件不成功!
- 怎样注册一个文件?
- 关于ToolBar
- 花了一个晚上写了一个消息轰炸机90%的win2000或xp都有效,好用不用说谢不是什么好东西!
- 如何程序中动态创建vfoxpro的dbf文件?详情入内!
- 给分问答题??????????
- 请教:我初始窗体最大化后toolbar1在窗体的最下面,但在任务栏的上面,最小化后,再最大化toolbar1就看不见了,如何解决?
- 如何批量改变相同控件的大小?
If MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbYes Then
Unload Me
End
Else
Cancel = True
End If
End Sub
在跳转窗体时,点跳转窗体的钮也会弹出"退出"对话框.跳接窗体代码如下:(按Command2钮,从窗体1切换到窗体2)
Private Sub Command2_Click()
Unload 窗体2
Load 窗体2
窗体2.Show
End Sub
由于跳转到另一窗体时,要求该窗体要在最大化状态,如果该窗体事先已打开,而是最小化在任务栏上,若再次由其它窗体重复跳接到该窗体,还时最小化在任务栏上.所以加上了关闭窗体2一句,即先关闭再打开.这样不论跳接到哪个窗体都是最大化.
如有不对请指正.
Call Command1_Click
End Sub
下:Private Sub Form_Unload(Cancel As Integer)
Call Form1.Command1_Click
End Sub在每一个窗体的Unload事件中都写上上面的代码即可。Public Sub Command1_Click()
If MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbYes Then
Unload Me
End
Else
Cancel = True
End If
End Sub
如果是这样,就简单了:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = (MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbNo)
End Sub使用QueryUnload事件的另一个好处是可以根据 unloadmode 参数得知是什么原因导致的窗口关闭:常数 值 描述
vbFormControlMenu 0 用户从窗体上的“控件”菜单中选择“关闭”指令。
vbFormCode 1 Unload 语句被代码调用。
vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。
vbAppTaskManager 3 Microsoft Windows 任务管理器正在关闭应用程序。
vbFormMDIForm 4 MDI 子窗体正在关闭,因为 MDI 窗体正在关闭。
vbFormOwner 5 因为窗体的所有者正在关闭,所以窗体也在关闭。
本论坛无法上传附件,所以只好放在下面的论坛,请各位前往更正一下:
http://www.vbgood.com/viewthread.php?tid=50452&extra=page%3D1
原代码60多K在下面网站有:
http://www.vbgood.com/viewthread.php?tid=50527&extra=page%3D1
http://bbs.bc-cn.net/dispbbs.asp?boardID=6&ID=122405&page=1
部分代码如下:改的地方是"关闭钮用(1)-(6)"
Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib "USER32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Const PROCESS_TERMINATE = 1Private bQuestion As Boolean '关闭钮用(1)
Private Sub Command3_Click() '在本工程内用下面代码就出错,不知何故?
Load dd
dd.Show
Unload Me
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '关闭钮用(2)
If UnloadMode = 0 Then bQuestion = True
End Sub
Private Sub Command1_Click()
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\aa.exe", vbMaximizedFocus
bQuestion = False '关闭钮用(3)
Unload Me
End Sub
Private Sub Command2_Click()
Shell "rundll32.exe url.dll,FileProtocolHandler " & App.Path & "\bb.exe", vbMaximizedFocus
bQuestion = False '关闭钮用(4)
Unload Me
End SubPrivate Sub Command4_Click() '退出系统钮
bQuestion = True '关闭钮用(5)
Unload Me
End Sub
Private Sub Command5_Click() '在本工程内用下面代码就出错,不知何故?
Load ee
ee.Show
Unload Me
End SubPrivate Sub Form_Unload(Cancel As Integer) '关闭钮用(6)
Dim Ltem As Long
Dim LpID As Long
Dim hLong As Long
Dim pForm As Form
Const strWinName As String = "olp"
If bQuestion Then
If MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") <> vbYes Then
Cancel = True
Exit Sub
Else
hLong = FindWindow(vbNullString, strWinName)
If hLong Then
GetWindowThreadProcessId hLong, LpID
Ltem = OpenProcess(PROCESS_TERMINATE, False, LpID)
TerminateProcess Ltem, 0
hLong = 0
End If
End If
End If
UnHook Me.hWnd '鼠标滚轮事件用
For Each pForm In Forms
Unload pForm
Next
End Sub
Cancel = (MsgBox("你确实要退出吗?", vbYesNo + vbExclamation, "系统询问") = vbNo)
End Sub使用QueryUnload事件的另一个好处是可以根据 unloadmode 参数得知是什么原因导致的窗口关闭:常数 值 描述
vbFormControlMenu 0 用户从窗体上的“控件”菜单中选择“关闭”指令。
vbFormCode 1 Unload 语句被代码调用。
vbAppWindows 2 当前 Microsoft Windows 操作环境会话结束。
vbAppTaskManager 3 Microsoft Windows 任务管理器正在关闭应用程序。
vbFormMDIForm 4 MDI 子窗体正在关闭,因为 MDI 窗体正在关闭。
vbFormOwner 5 因为窗体的所有者正在关闭,所以窗体也在关闭。