Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Visual Basic
Expertise: Intermediate
Nov 17, 1998

Force an MDI Window Refresh

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:
 
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
Thomas Weiss
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date