SetScrollRange

¿øÇü

BOOL SetScrollRange(HWND hWnd, int nBar, int nMinPos, int nMaxPos, BOOL bRedraw);

MFC ¿øÇü

void CWnd::SetScrollRange( int nBar, int nMinPos, int nMaxPos, BOOL bRedraw = TRUE );
void CScrollBar::SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE );

Àμö

¢ºhWnd : ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀÇ ÇÚµé. ÀÌ °ªÀÇ Àǹ̴ µÎ¹ø° Àμö nBar¿¡ µû¶ó ´Þ¶óÁø´Ù.

¢ºnBar : À§Ä¡¸¦ ¼³Á¤ÇÒ ½ºÅ©·Ñ ¹Ù¸¦ ÁöÁ¤ÇÑ´Ù. ´ÙÀ½ ¼¼°¡Áö °ªÁßÀÇ Çϳª¸¦ °¡Áø´Ù.

°ª ¼³¸í
SB_CTL º°µµÀÇ ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀ̸ç hWnd´Â ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀÇ ÇÚµéÀ» ³ªÅ¸³½´Ù.
SB_HORZ Ç¥ÁØ ¼öÆò ½ºÅ©·Ñ ¹ÙÀ̸ç hWnd´Â ½ºÅ©·Ñ ¹Ù¸¦ °¡Áø À©µµ¿ìÀÇ ÇÚµéÀÌ´Ù.
SB_VERT Ç¥ÁØ ¼öÁ÷ ½ºÅ©·Ñ ¹ÙÀ̸ç hWnd´Â ½ºÅ©·Ñ ¹Ù¸¦ °¡Áø À©µµ¿ìÀÇ ÇÚµéÀÌ´Ù.

¢ºnPos : ½ºÅ©·Ñ ¹ÙÀ§ »õ·Î¿î À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ À§Ä¡´Â ¹Ýµå½Ã ½ºÅ©·Ñ ¹ÙÀ§ ¹üÀ§³»¿¡ ÀÖ¾î¾ß ÇϹǷΠ°ªÀ» º¯°æÇÒ ¶§ ¹üÀ§ ³»ºÎÀÎÁö¸¦ Á¡°ËÇÑ ÈÄ °ªÀ» º¯°æÇØ¾ß ÇÑ´Ù.

¢ºnMinPos, nMaxPos : ½ºÅ©·Ñ ¹ÙÀÇ ÃÖ¼Ò°ª¹× ÃÖ´ë°ª

¢ºbRedraw : ½ºÅ©·Ñ¹ÙÀÇ ¹üÀ§¸¦ º¯°æÇÑ ÈÄ ´Ù½Ã ±×¸± °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. TRUEÀÌ¸é ´Ù½Ã ±×¸®°í FALSEÀÌ¸é ´Ù½Ã ±×¸®Áö ¾Ê´Â´Ù. ÇÁ·Î±×·¥ ½ÇÇàÁß¿¡ ¹üÀ§¸¦ º¯°æÇÒ ¶§´Â ÀÌ Àμö¸¦ TRUE·Î ÁöÁ¤ÇÏ¿© ½æÀÇ À§Ä¡¸¦ Àç°è»êÇϵµ·Ï ÇØ ÁÖ¾î¾ß Çϸç ÇÁ·Î±×·¥ ÃʱâÈ­½Ã¿¡´Â ±»ÀÌ ´Ù½Ã ±×·ÁÁÙ ÇÊ¿ä°¡ ¾ø´Ù. ¶ÇÇÑ ÀÌ ÇÔ¼ö È£Ãâ ÈÄ °ð¹Ù·Î SetScrollPos ÇÔ¼ö·Î ½æÀÇ À§Ä¡¸¦ º¯°æÇÑ´Ù¸é ÀÌ Àμö¸¦ FALSE·Î ÁÖ´Â °ÍÀÌ ÁÁ´Ù.

¸®ÅÏ

¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ¸ç ½ÇÆнà 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

Ç¥ÁØ ½ºÅ©·Ñ ¹Ù ¶Ç´Â ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀÇ ¹üÀ§¸¦ ¼³Á¤ÇÑ´Ù. Ç¥ÁØ ½ºÅ©·Ñ ¹ÙÀÇ µðÆúÆ® ¹üÀ§´Â 0~100±îÁöÀÌ¸ç ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀÇ µðÆúÆ® ¹üÀ§´Â µÑ ´Ù 0À¸·Î ºñ¾î ÀÖ´Ù. ÀϹÝÀûÀ¸·Î ½ºÅ©·Ñ ¹Ù »ý¼º Á÷ÈÄ¿¡ ÀÌ ÇÔ¼ö·Î ÀûÀýÇÑ ½ºÅ©·Ñ ¹üÀ§¸¦ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù. nMaxPos¿Í nMinPosÀÇ Â÷ÀÎ ¹üÀ§´Â MAXLONGº¸´Ù Ä¿¼­´Â ¾ÈµÈ´Ù.

ÃÖ¼Ò, ÃÖ´ë°ªÀÌ °°À» °æ¿ì´Â ½ºÅ©·Ñ ¹Ù°¡ ¼û°ÜÁö´Â È¿°ú°¡ Àִµ¥ ÀÌ·± ¸ñÀûÀ¸·Î ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀ¸¸ç ShowScrollBar ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ½ºÅ©·Ñ ¹Ù ÄÁÆ®·ÑÀ» »ý¼ºÇÏ°í 0~255±îÁöÀÇ ¹üÀ§¸¦ ÁØ ÈÄ ÃʱⰪÀ» 192·Î ¼³Á¤ÇÑ´Ù. ½ºÅ©·Ñ ¹Ù¸¦ µå·¡±×ÇÏ¿© À§Ä¡¸¦ º¯°æÇϸé ÀÌ °ªÀ¸·Î ºê·¯½Ã¸¦ »ý¼ºÇÏ¿© ÀÛ¾÷ ¿µ¿ªÀ» Ä¥ÇÑ´Ù.

HWND hScroll;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HBRUSH MyBrush, OldBrush;
	RECT rt;
	int Pos;

	switch(iMessage) {
	case WM_CREATE:
		hScroll=CreateWindow("scrollbar",NULL,WS_CHILD | WS_VISIBLE | SBS_HORZ,
			10,10,266,20,hWnd,(HMENU)0,g_hInst,NULL);
		SetScrollRange(hScroll,SB_CTL,0,255,FALSE);
		SetScrollPos(hScroll,SB_CTL,192,FALSE);
		return 0;
	case WM_HSCROLL:
		Pos=GetScrollPos((HWND)lParam,SB_CTL);
		switch (LOWORD(wParam)) {
		case SB_LINELEFT:
			Pos=max(0,Pos-1);
			break;
		case SB_LINERIGHT:
			Pos=min(255,Pos+1);
			break;
		case SB_PAGELEFT:
			Pos=max(0,Pos-10);
			break;
		case SB_PAGERIGHT:
			Pos=min(255,Pos+10);
			break;
		case SB_THUMBTRACK:
			Pos=HIWORD(wParam);
			break;
		}
		SetScrollPos((HWND)lParam,SB_CTL,Pos,TRUE);
		InvalidateRect(hWnd,NULL,FALSE);
		return 0;
	case WM_PAINT:
		Pos=GetScrollPos(hScroll,SB_CTL);
		hdc=BeginPaint(hWnd,&ps);
		MyBrush=CreateSolidBrush(RGB(Pos,Pos,Pos));
		OldBrush=(HBRUSH)SelectObject(hdc,MyBrush);
		GetClientRect(hWnd,&rt);
		FillRect(hdc,&rt,MyBrush);
		SelectObject(hdc,OldBrush);
		DeleteObject(MyBrush);
		EndPaint(hWnd,&ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

Âü°íÇÔ¼ö

GetScrollRange, SetScrollPos

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr