2010-02-09 2 views
2

В принципе, у меня есть форма, которая автоматически переходит в полноэкранный режим. Но в то время как Inet работает, этого не происходит. После завершения Inet приложение переходит в полноэкранный режим.VB6: почему не загружается полноэкранный режим во время работы Inet?

 Private 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 

     Private Declare Function ShowCursor Lib "user32" _ 
       (ByVal bShow As Long) As Long 

Private Sub Form_Load() 

Dim x As Integer 

Call AlwaysOnTop(Me, True) 

x = ShowCursor(True) 


Dim Download() As Byte 

Download() = Inet1.OpenURL("http://www.site.com/23423/server.txt) 
Open ("server.txt") For Binary Access Write As #1 
Put #1, , DownloadData() 
Close #1 

End Sub 

Sub AlwaysOnTop(FrmID As Form, OnTop As Boolean) 

     Const SWP_NOMOVE = 2 

     Const SWP_NOSIZE = 1 

     Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE 

     Const HWND_TOPMOST = -1 

     Const HWND_NOTOPMOST = -2 



     If OnTop Then 

      OnTop = SetWindowPos(FrmID.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) 

     Else 

      OnTop = SetWindowPos(FrmID.hwnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS) 

     End If 
End Sub 

ответ

0
Private 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 

Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long 

Private Sub Form_Load() 
    AlwaysOnTop Me, True 
    ShowCursor True 
    DoEvents '' <---- This is what you need. 

    Dim Download() As Byte 
    Dim FileHandle As Long 
    Download() = Inet1.OpenURL("http://www.site.com/23423/server.txt") 
    FileHandle = FreeFile() 
    Open ("server.txt") For Binary Access Write As FileHandle 
    Put FileHandle, , DownloadData() 
    Close FileHandle 
End Sub 

Sub AlwaysOnTop(FrmID As Form, OnTop As Boolean) 
    Const SWP_NOMOVE = 2 
    Const SWP_NOSIZE = 1 
    Const FLAGS = SWP_NOMOVE Or SWP_NOSIZE 
    Const HWND_TOPMOST = -1 
    Const HWND_NOTOPMOST = -2 
    SetWindowPos FrmID.hwnd, Iif(OnTop, HWND_TOPMOST, HWND_NOTOPMOST), 0, 0, 0, 0, FLAGS 
End Sub 
1

Это не конкретно о инет - форма перерисовывается только когда метод Form_Load делается - VB6 есть время, чтобы сделать свой собственный материал и обновления пользовательского интерфейса.

Вы можете попробовать DoEvents как в этом примере, и я думаю, что это должно помочь: http://www.daniweb.com/forums/thread65362.html