原贴:
http://community.csdn.net/Expert/topic/4446/4446492.xml?temp=.2299921首先感谢大侠回复,不过好像没完全解决,还是有点问题:OWNER变为Enabled是可以了,并且可以拖动该窗体,不过OWNER上的控件好像还是不能相应,比如
按钮等等。
如下是我的测试代码,在Form1中加了个Timer控件,仅仅用来弹出模态窗体后,调用ShowModalWindow来使OWNER变为Enable,弹出模态窗体并将OWNER变为可用后,将计时器Diabled
但是这时Form1上的Command2是不能相应,添加其他控件试了一下,也都不能相应,这该怎么办?——————————————————————————————————
Option ExplicitPrivate Const GW_OWNER = 4
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Dim f2 As Form2Private Sub ShowModalWindow(ByVal hwnd As Long, ByVal flag As Boolean)
Dim Owner_Hwnd As Long
Owner_Hwnd = GetWindow(hwnd, GW_OWNER)
If GW_OWNER <> 0 Then
EnableWindow Owner_Hwnd, flag
End If
End SubPrivate Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 1000
Set f2 = New Form2
f2.Show vbModal
End SubPrivate Sub Command2_Click()
MsgBox "Command 2"
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
ShowModalWindow f2.hwnd, True
End Sub
http://community.csdn.net/Expert/topic/4446/4446492.xml?temp=.2299921首先感谢大侠回复,不过好像没完全解决,还是有点问题:OWNER变为Enabled是可以了,并且可以拖动该窗体,不过OWNER上的控件好像还是不能相应,比如
按钮等等。
如下是我的测试代码,在Form1中加了个Timer控件,仅仅用来弹出模态窗体后,调用ShowModalWindow来使OWNER变为Enable,弹出模态窗体并将OWNER变为可用后,将计时器Diabled
但是这时Form1上的Command2是不能相应,添加其他控件试了一下,也都不能相应,这该怎么办?——————————————————————————————————
Option ExplicitPrivate Const GW_OWNER = 4
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Dim f2 As Form2Private Sub ShowModalWindow(ByVal hwnd As Long, ByVal flag As Boolean)
Dim Owner_Hwnd As Long
Owner_Hwnd = GetWindow(hwnd, GW_OWNER)
If GW_OWNER <> 0 Then
EnableWindow Owner_Hwnd, flag
End If
End SubPrivate Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = 1000
Set f2 = New Form2
f2.Show vbModal
End SubPrivate Sub Command2_Click()
MsgBox "Command 2"
End SubPrivate Sub Timer1_Timer()
Timer1.Enabled = False
ShowModalWindow f2.hwnd, True
End Sub
http://discuss.fogcreek.com/joelonsoftware3/default.asp?cmd=show&ixPost=104273你还是说明一下你的需求吧,越详细越好