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: |