OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP ,0);
OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP, 0); if (fixScroll) OS.SendMessage (handle, OS.WM_SETREDRAW, 0, 0);
void showItem (int hItem) {	/*	* Bug in Windows.  When TVM_ENSUREVISIBLE is used to ensure	* that an item is visible and the client area of the tree is	* smaller that the size of one item, TVM_ENSUREVISIBLE makes	* the next item in the tree visible by making it the top item	* instead of making the desired item visible.  The fix is to	* detect the case when the client area is too small and make	* the desired visible item be the top item in the tree.	*/	if (OS.SendMessage (handle, OS.TVM_GETVISIBLECOUNT, 0, 0) == 0) {		OS.SendMessage (handle, OS.TVM_SELECTITEM, OS.TVGN_FIRSTVISIBLE, hItem);		OS.SendMessage (handle, OS.WM_HSCROLL, OS.SB_TOP ,0);	} else {		boolean scroll = true;		RECT itemRect = new RECT ();		itemRect.left = hItem;		if (OS.SendMessage (handle, OS.TVM_GETITEMRECT, 1, itemRect) != 0) {			forceResize ();			RECT rect = new RECT ();			OS.GetClientRect (handle, rect);			POINT pt = new POINT ();			pt.x = itemRect.left;			pt.y = itemRect.top;			if (OS.PtInRect (rect, pt)) {				pt.y = itemRect.bottom;				if (OS.PtInRect (rect, pt)) scroll = false;			}		}		if (scroll) OS.SendMessage (handle, OS.TVM_ENSUREVISIBLE, 0, hItem);	}}