用mfc做的滑动条要控制内容滚动,现只有滑动条滚动内容不动,问题出在哪里?
voidCMainWindow::OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){//TODO:Addyour...
void CMainWindow::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
int TempPos = pScrollBar->GetScrollPos();
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(TempPos > 1)
{
TempPos--;
}
pScrollBar->SetScrollPos(TempPos);
break;
case SB_LINERIGHT://点击右边的箭头
if(TempPos<100)
{
TempPos++;
}
pScrollBar->SetScrollPos(TempPos);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CMainWindow::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int TempPos = pScrollBar->GetScrollPos();
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(TempPos > 1)
{
TempPos--;
}
pScrollBar->SetScrollPos(TempPos);
break;
case SB_LINERIGHT://点击右边的箭头
if(TempPos<100)
{
TempPos++;
}
pScrollBar->SetScrollPos(TempPos);
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
以上是代码 展开
{
// TODO: Add your message handler code here and/or call default
int TempPos = pScrollBar->GetScrollPos();
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(TempPos > 1)
{
TempPos--;
}
pScrollBar->SetScrollPos(TempPos);
break;
case SB_LINERIGHT://点击右边的箭头
if(TempPos<100)
{
TempPos++;
}
pScrollBar->SetScrollPos(TempPos);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
void CMainWindow::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
int TempPos = pScrollBar->GetScrollPos();
switch(nSBCode)
{
case SB_THUMBPOSITION://拖动滑块
pScrollBar->SetScrollPos(nPos);
break;
case SB_LINELEFT://点击左边的箭头
if(TempPos > 1)
{
TempPos--;
}
pScrollBar->SetScrollPos(TempPos);
break;
case SB_LINERIGHT://点击右边的箭头
if(TempPos<100)
{
TempPos++;
}
pScrollBar->SetScrollPos(TempPos);
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
以上是代码 展开
1个回答
展开全部
你的滚动条的滚动消息和父窗口,关联上了吗?如果没有关联上,那当然不会滚动了。
请断点调试一下,当你点击滚动条进行滚动时,会不会触发窗口的OnHScroll和OnVScroll这两个消息。
请断点调试一下,当你点击滚动条进行滚动时,会不会触发窗口的OnHScroll和OnVScroll这两个消息。
更多追问追答
追问
你好,能给具体指导下吗?我是菜鸟级别的,跪谢
追答
有两个问题需要确认:1. 你的滚动条是你自己创建的吗?2.当你点击滚动条进行滚动时,窗口有没有收到OnHScroll和OnVScroll这两个消息。
如果滚动条是你自己创建的,需要自己手动向指定的窗口发送滚动消息:
// 发送垂直滚动消息给父窗口,但需要自己计算滚动的范围nPos。
SendMessage(父窗口句柄, WM_VSCROLL,MAKEWPARAM( SB_THUMBPOSITION, nPos ), ( LPARAM ) 滚动条本身窗口句柄);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询