MDIRefresh




Public Sub Refresh()
Call RedrawWindow(Me.hWnd, 0&, 0&, _
RDW_ALLCHILDREN Or RDW_UPDATENOW)
End Sub

You need to declare these API constants:
Public Const RDW_ALLCHILDREN = &H80
Public Const RDW_UPDATENOW = &H100
' Note: The data type of the lprcUpdate

' parameter has been changed

' from RECT to Any so 0& (NULL) can be passed.

#If Win32 Then
Declare Function RedrawWindow Lib _
"user32" (ByVal hwnd As Long, _
lprcUpdate As Any, ByVal hrgnUpdate _
As Long, ByVal fuRedraw As Long) As Long
#ElseIf Win16 Then
Declare Function RedrawWindow Lib "User" _
(ByVal hWnd As Integer, lprcUpdate As Any, _
ByVal hrgnUpdate As Integer, ByVal fuRedraw As _
Integer) As Integer
#End If
--------------------------------------------------------------------------------------------------------
I sometimes want an MDI parent window to be repainted. For example,
if a modal dialog is displayed over the MDI form and you click on OK,
the dialog is hidden and an operation occurs, which takes a few seconds
to complete. In the meantime, remnants of the dialog are still visible because
Windows doesn't have time to complete the paint operation, and the screen
looks messy. MDI forms don't have a Refresh method, and I don't want to
throw a DoEvents into my code because it's dangerous. This code gives my
MDI form a Refresh method:










( mdirefresh.html )- by Paolo Puglisi - Modifica del 17/12/2023