您的位置:首页 > 编程语言 > C语言/C++

How to create a resizeable dialog box with scroll bars in Visual C++

2010-05-26 13:17 786 查看
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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: