int oldHeight = oldRect.bottom - oldRect.top;
LRESULT WM_WINDOWPOSCHANGING (int wParam, int lParam) {	LRESULT result = super.WM_WINDOWPOSCHANGING (wParam, lParam);	if (result != null) return result;	if (drawCount != 0) return result;	if ((style & SWT.WRAP) == 0) return result;	if (!OS.IsWindowVisible (handle)) return result;	if (OS.SendMessage (handle, OS.TB_GETROWS, 0, 0) == 1) {		return result;	}	WINDOWPOS lpwp = new WINDOWPOS ();	OS.MoveMemory (lpwp, lParam, WINDOWPOS.sizeof);	if ((lpwp.flags & (OS.SWP_NOSIZE | OS.SWP_NOREDRAW)) != 0) {		return result;	}	RECT oldRect = new RECT ();	OS.GetClientRect (handle, oldRect);	RECT newRect = new RECT ();	OS.SetRect (newRect, 0, 0, lpwp.cx, lpwp.cy);	OS.SendMessage (handle, OS.WM_NCCALCSIZE, 0, newRect);	int oldWidth = oldRect.right - oldRect.left;	int oldHeight = oldRect.bottom - oldRect.top;	int newWidth = newRect.right - newRect.left;	int newHeight = newRect.bottom - newRect.top;	if (newWidth > oldWidth) {		/*		* Bug in Windows.  When a flat tool bar is wrapped,		* Windows draws a horizontal separator between the		* rows.  The tool bar does not draw the first or		* the last two pixels of this separator.  When the		* toolbar is resized to be bigger, only the new		* area is drawn and the last two pixels, which are		* blank are drawn over by separator.  This leaves		* garbage on the screen.  The fix is to damage the		* pixels.		*/		RECT rect = new RECT ();		OS.SetRect (rect, oldWidth - 2, 0, oldWidth, newHeight);		OS.InvalidateRect (handle, rect, false);		OS.SetRect (rect, oldRect.right, newRect.top, newRect.right, newRect.bottom);		OS.InvalidateRect (handle, rect, true);	}	if (newHeight > oldHeight) {		RECT rect = new RECT ();		OS.SetRect (rect, newRect.left, oldRect.bottom, newRect.right, newRect.bottom);		OS.InvalidateRect (handle, rect, true);	}	return result;}