우선 WM_MOUSEWHEEL 메세지 처리 해 주어야 합니다.
예를 들어.
BOOL 스크롤뷰클래스::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// delta값이 - 일경우(아래쪽으로 wheel scrll)
CPoint pt = GetScrollPosition ();
if( zDelta <= 0 ) //휠아래로
{
pt.y += 50; // 스크롤 감도 조절.
DWORD dw = SB_LINEDOWN;
SendMessage (WM_VSCROLL, dw, 0);
}
else // 휠위로
{
pt.y -= 50; // 스크롤 감도 조절.
DWORD dw = SB_LINEUP;
SendMessage (WM_VSCROLL, dw, 0);
}
ScrollToPosition (pt);
return 스크롤뷰클래스::OnMouseWheel(nFlags, zDelta, ppt);
}
대강 이렇게 하시면 될 듯,
뷰가 포커스를 가지고 있을 때 스크롤이 먹습니다.
예를 들어.
BOOL 스크롤뷰클래스::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
// delta값이 - 일경우(아래쪽으로 wheel scrll)
CPoint pt = GetScrollPosition ();
if( zDelta <= 0 ) //휠아래로
{
pt.y += 50; // 스크롤 감도 조절.
DWORD dw = SB_LINEDOWN;
SendMessage (WM_VSCROLL, dw, 0);
}
else // 휠위로
{
pt.y -= 50; // 스크롤 감도 조절.
DWORD dw = SB_LINEUP;
SendMessage (WM_VSCROLL, dw, 0);
}
ScrollToPosition (pt);
return 스크롤뷰클래스::OnMouseWheel(nFlags, zDelta, ppt);
}
대강 이렇게 하시면 될 듯,
뷰가 포커스를 가지고 있을 때 스크롤이 먹습니다.
'Windows > MFC' 카테고리의 다른 글
CString 에서 메모리관련 오류 발생시 m_szParsing.GetBuffer(6500); (0) | 2013.10.02 |
---|---|
LIP 구분을 PC 에서 하기 (0) | 2013.10.02 |
scroll 시 깜박임... 문제 처리 (0) | 2013.10.02 |
Splitter 분할 (0) | 2013.10.02 |
splitter 분할 이후 처리 (0) | 2013.10.02 |