Type a page name and press Enter. You'll jump to the page if it exists, or you can create it if it doesn't.
To create a page in a module other than user32, prefix the name with the module name and a period.
Public Overloads Declare Function InvalidateRect Lib "User32" Alias "InvalidateRect" (ByVal hWnd As Int32, ByRef lpRect As RECT, ByVal bErase As Boolean) As Boolean
Public Overloads Declare Function InvalidateRect Lib "User32" Alias "InvalidateRect" (ByVal hWnd As Int32, ByVal lpRect As IntPtr, ByVal bErase As Boolean) As Boolean
Public Overloads Shared Function InvalidateRect(ByVal hWnd As Int32, ByVal bErase As Boolean) As Boolean
Return InvalidateRect(hWnd, IntPtr.Zero, bErase)
End Function
Public Overloads Shared Function InvalidateRect(ByVal hWnd As Int32, ByVal lpRect As System.Drawing.Rectangle, ByVal bErase As Boolean) As Boolean
Return InvalidateRect(hWnd, RECT.FromRectangle(lpRect), bErase)
End Function
Useful to force a redraw when you don't have control of the area, when using WindowFromPoint() for example. If you do have control of the object, you can called the managed Control.Invalidate()
Tips & Tricks:
Setting the second param (lpRect) to IntPtr.Zero will redraw the whole client area.
Setting the second param (lpRect) to Int32.Zero will redraw the whole client area.
Sample Code:
POINT pt;
RECT rct;
/** converted coords **/
Rectangle R;
/** get current current cursor location **/
GetCursorPos(out pt)
/** get the window handle **/
IntPtr hWnd = WindowFromPoint(pt);
GetWindowRect(hWnd, out rct);
/** draw a red border around your rectangle **/
ControlPaint.DrawBorder(System.Drawing.Graphics.FromHwnd(hWnd), R, Color.Red, ButtonBorderStyle.Solid);
/** when you want to clear this rectangle, use this **/
InvalidateRect(hWnd, IntPtr.Zero, true);
Alternative Managed API:
Invalidate method
Invalidate() - invalidates the entire surface causing the control to be repainted.
Invalidate(bool invalidateChilden) - Optionally, invalidates the child controls assigned to the control.
Invalidate(Rectangle rect) - Adds the specified rectangle to the update region of the control
Invalidate method
Invalidate() - invalidates the entire surface causing the control to be repainted.
Invalidate(bool invalidateChilden) - Optionally, invalidates the child controls assigned to the control.
Invalidate(Rectangle rect) - Adds the specified rectangle to the update region of the control
and causes a paint message to be sent to the control.
Invalidate(Rectangle rect, bool invalidateChildern) - combination of the previous two.
Invalidate(Region rgn) - Adds the specified graphics region to the update region of the control
Invalidate(Rectangle rect, bool invalidateChildern) - combination of the previous two.
Invalidate(Region rgn) - Adds the specified graphics region to the update region of the control
and causes a paint message to be sent to the control.
Invalidate(Region rgn, bool invalidateChildren)
The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle.
6/3/2013 5:41:04 PM - dahminator-75.174.65.168
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.
1/13/2008 4:00:13 AM - Damon Carr-72.43.165.29
The POINT structure defines the x- and y-coordinates of a point.
9/24/2022 6:08:15 AM - -93.99.148.7
The RECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle.
6/3/2013 5:41:04 PM - dahminator-75.174.65.168
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).