How to create a resizeable dialog box with scroll bars in Visual C++
http://support.microsoft.com/kb/262954/en-us/
http://msdn.microsoft.com/en-us/library/bb787531%28v=VS.85%29.aspx#wm_paint
GetClientRect(m_rect);
if(m_rect.bottom<rect.bottom)
{
m_rect.bottom = rect.bottom-m_rect.Height();
SetScrollRange(SB_VERT,0,m_rect.bottom);
ShowScrollBar(SB_VERT, TRUE);
}
void CUsageDisplayTab::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
// TODO: Add your message handler code here and/or call default
int nDelta;
int nMaxPos = m_rect.Height() /*- m_nCurHeight*/;
switch (nSBCode)
{
case SB_LINEDOWN:
if (m_nScrollPos >= nMaxPos)
return;
nDelta = min(nMaxPos/100,nMaxPos-m_nScrollPos);
break;
case SB_LINEUP:
if (m_nScrollPos <= 0)
return;
nDelta = -min(nMaxPos/100,m_nScrollPos);
break;
case SB_PAGEDOWN:
if (m_nScrollPos >= nMaxPos)
return;
nDelta = min(nMaxPos/10,nMaxPos-m_nScrollPos);
break;
case SB_THUMBPOSITION:
nDelta = (int)nPos - m_nScrollPos;
break;
case SB_PAGEUP:
if (m_nScrollPos <= 0)
return;
nDelta = -min(nMaxPos/10,m_nScrollPos);
break;
default:
return;
}
m_nScrollPos += nDelta;
SetScrollPos(SB_VERT,m_nScrollPos,TRUE);
ScrollWindow(0,-nDelta);
CTabPageSSL::OnVScroll(nSBCode, nPos, pScrollBar);
}
dynamic created button
m_cChkbx[i] = new CButton;
m_cChkbx[i]->Create("",WS_CHILD ,rect ,this, GET_CHEKBOX_ID(i));
m_cChkbx[i]->SetFont(pChkFont);
m_cChkbx[i]->SetButtonStyle(BS_AUTOCHECKBOX);
m_cChkbx[i]->ShowWindow(SW_SHOW);