Scroll Control Group 직접 만들어본 컨트롤
MFC&ActiveX 2008. 1. 24. 23:46 |FormView로 구성된 세부 컨트롤 처리
Color1 + Pick... + CheckButton 은 한줄씩 생성 됩니다.
Add, Delete 로 추가하고 삭제할 수 있습니다.
스크롤로 아래 위로 움직일 수 있습니다.
Add를 하게 되면 하단의 버튼이 아래로 내려 간다.
int pos = GetScrollPos(SB_VERT);
GetDlgItem(IDC_EFFECTATTRIB8_CHILD_ADD)->MoveWindow(20, m_NewHeightPos + 10 - pos, 100, 30);
GetDlgItem(IDC_EFFECTATTRIB8_CHILD_DELETE)->MoveWindow(20, m_NewHeightPos + 42 - pos, 100, 30);
GetDlgItem(IDC_EFFECTATTRIB8_CHILD_DELETE)->MoveWindow(20, m_NewHeightPos + 42 - pos, 100, 30);
CSize scrollSize;
scrollSize.cx = 200;
scrollSize.cy = m_NewHeightPos + 80;
SetScrollSizes(MM_TEXT, scrollSize);
scrollSize.cx = 200;
scrollSize.cy = m_NewHeightPos + 80;
SetScrollSizes(MM_TEXT, scrollSize);
위의 코드에서 보듯이 컨트롤을 동적으로 생성할 때
스크롤 성분에 의해서 원하는 위치에 생성되지 않습니다.
이 문제를 해결하기 위해서 GetScrollPos()를 사용해서 스크롤 값을 얻어 오고
그 값을 보정해서 생성하면 되네요..
관련코드 :