Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

101 lines
2.6 KiB

/**************************** Module Header ********************************\
* Module Name:
*
* Copyright (c) 1985 - 1999, Microsoft Corporation
*
* Scroll bar public APIs
*
* History:
* 11/21/90 JimA Created.
* 01-31-91 IanJa Revalidaion added
\***************************************************************************/
#include "precomp.h"
#pragma hdrstop
/***************************************************************************\
* xxxShowScrollBar
*
* Shows and hides standard scroll bars or scroll bar controls. If wBar is
* SB_HORZ, SB_VERT, or SB_BOTH, pwnd is assumed to be the handle of the window
* which has the standard scroll bars as styles. If wBar is SB_CTL, pwnd is
* assumed to be the handle of the scroll bar control.
*
* It does not destroy pwnd->rgwScroll like xxxSetScrollBar() does, so that the
* app can hide a standard scroll bar and then show it, without having to reset
* the range and thumbposition.
*
* History:
* 16-May-1991 mikeke Changed to return BOOL
\***************************************************************************/
BOOL xxxShowScrollBar(
PWND pwnd,
UINT wBar, /* SB_HORZ, SB_VERT, SB_BOTH , SB_CTL */
BOOL fShow) /* Show or Hide. */
{
BOOL fChanged = FALSE;
DWORD dwStyle;
CheckLock(pwnd);
switch (wBar)
{
case SB_CTL:
{
xxxShowWindow(
pwnd,
(fShow ? SHOW_OPENWINDOW : HIDE_WINDOW) | TEST_PUDF(PUDF_ANIMATE));
return(TRUE);
}
case SB_HORZ:
dwStyle = WS_HSCROLL;
break;
case SB_VERT:
dwStyle = WS_VSCROLL;
break;
case SB_BOTH:
dwStyle = WS_HSCROLL | WS_VSCROLL;
break;
}
if (!fShow)
{
if (pwnd->style & dwStyle)
{
fChanged = TRUE;
pwnd->style &= ~dwStyle;
}
} else {
if ((pwnd->style & dwStyle) != dwStyle)
{
fChanged = TRUE;
pwnd->style |= dwStyle;
}
/*
* Make sure that pwsb is initialized.
*/
if (pwnd->pSBInfo == NULL)
_InitPwSB(pwnd);
}
/*
* If the state changed, redraw the frame and force WM_NCPAINT.
*/
if (fChanged) {
/*
* We always redraw even if minimized or hidden... Otherwise, it seems
* the scroll bars aren't properly hidden/shown when we become
* visible
*/
xxxRedrawFrame(pwnd);
}
return TRUE;
}