페이저 컨트롤

페이저 컨트롤은 도구 모음이나 버튼처럼 스크롤 기능이 없는 윈도우에 스크롤 기능을 제공하는 역활을 합니다.

.h
CPagerCtrl m_wndPager;
CToolBar m_wndToolBar;

afx_msg void OnCalcSize(NMHDR * pNotifyStruct, LRESULT * result);

.cpp
ON_NOTIFY(PGN_CALCSIZE, 1234, &CPagerDemoView::OnCalcSize)

OnCreate()
{
...
m_wndPager.Create(WS_VISIBLE | WS_CHILD | PGS_HORZ, CRect(0, 0, 100, 32), this, 1234);

m_wndToolBar.CreateEx(&m_wndPager);
m_wndToolBar.LoadToolBar(IDR_MAINFRAME);

m_wndPager.SetChild(m_wndToolBar.m_hWnd);
m_wndPager.SetButtonSize(10);
m_wndPager.SetBorder(0);
...
}

void CPagerDemoView::OnCalcSize(NMHDR * pNotifyStruct, LRESULT * result)
{
LPNMPGCALCSIZE pNMPGCALCSIZE = (LPNMPGCALCSIZE)pNotifyStruct;
if(pNMPGCALCSIZE->dwFlag == PGF_CALCWIDTH)
{
SIZE size;
m_wndToolBar.SendMessage(TB_GETMAXSIZE, 0, (LPARAM)&size);
pNMPGCALCSIZE->iWidth = size.cx;
}
}

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다