Program Language/API | MFC

[MFC] 스크롤바 유무확인

야곰야곰+책벌레 2021. 5. 28. 10:57
728x90
반응형

  UI에서 Autolayout을 구현하다 보면, 창의 크기에 따라서 스크롤바가 나타났다가 사라졌다가 한다. 스크롤바에 가려지는 콘텐츠가 없도록 하려면 스크롤바의 굵기만큼 조절해 줘야 한다. 처음에는 창의 크기와 콘텐츠들의 크기를 비교해가면서 Layout을 맞췄지만, 가로, 세로 스크롤바가 생성되는 부분에서 계산이 제대로 되지 않았다.

  그래서 스크롤바 유무를 확인해서 방법을 알아보니 다음과 같이 하면 되었다.

if (GetStyle() & WS_VSCROLL)
{
	SCROLLINFO scrollInfo;
	GetScrollInfo(SB_VERT, &scrollInfo, SIF_ALL);
	widthColumn += scrollInfo.fMask;
}

혹시 안되게 되면 스크롤바가 어느 UI에서 생기는 것인지도 알아보자.

나는 CWnd에서 스크롤바 Style을 비교하여도 안되었었다. 그런데 확인해보니 CWnd를 덮고 있던 CListCtrl에 생긴 스크롤바였다.

728x90
반응형