点击滚动条之后,
发现滚动条也随着页面的滚动一起滚动到屏幕外面去了,
想记录滚动之前滚动条的rect,再用movewindow还原,但是不行,
请问,如何解决。
void CButtonDrawDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
SCROLLINFO scrollinfo;
pScrollBar->GetScrollInfo(&scrollinfo,SIF_ALL); switch (nSBCode)
{
case SB_LINEDOWN:
scrollinfo.nPos += 1;
if (scrollinfo.nPos>scrollinfo.nMax)
{
scrollinfo.nPos = scrollinfo.nMax;
break;
}
pScrollBar->SetScrollInfo(&scrollinfo);
ScrollWindow(0,-10);
break; case SB_LINEUP:
nPos = pScrollBar->GetScrollPos();
scrollinfo.nPos += 1;
if (scrollinfo.nPos <scrollinfo.nMin)
{
scrollinfo.nPos = scrollinfo.nMin;
break;
}
pScrollBar->SetScrollInfo(&scrollinfo);
ScrollWindow(0,10);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
滚动条是自己添加上去的,关联了类变量 CScrollBar* pScrollBar;
在OnInitDialog中
pScrollBar = (CScrollBar*)GetDlgItem(IDC_ScrolV);
发现滚动条也随着页面的滚动一起滚动到屏幕外面去了,
想记录滚动之前滚动条的rect,再用movewindow还原,但是不行,
请问,如何解决。
void CButtonDrawDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
SCROLLINFO scrollinfo;
pScrollBar->GetScrollInfo(&scrollinfo,SIF_ALL); switch (nSBCode)
{
case SB_LINEDOWN:
scrollinfo.nPos += 1;
if (scrollinfo.nPos>scrollinfo.nMax)
{
scrollinfo.nPos = scrollinfo.nMax;
break;
}
pScrollBar->SetScrollInfo(&scrollinfo);
ScrollWindow(0,-10);
break; case SB_LINEUP:
nPos = pScrollBar->GetScrollPos();
scrollinfo.nPos += 1;
if (scrollinfo.nPos <scrollinfo.nMin)
{
scrollinfo.nPos = scrollinfo.nMin;
break;
}
pScrollBar->SetScrollInfo(&scrollinfo);
ScrollWindow(0,10);
break;
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
滚动条是自己添加上去的,关联了类变量 CScrollBar* pScrollBar;
在OnInitDialog中
pScrollBar = (CScrollBar*)GetDlgItem(IDC_ScrolV);
解决方案 »
- CEdit中设置了一个布尔变量,如果为true就修改了背景颜色以及边框的颜色,但是我一旦在父窗口中移动一下鼠标边框颜色就 消失了,为何?
- DSkinLite界面库的使用
- 初来贵地,请多指教,来者有分~~~界面编程是什么?有高手吗?什么样叫高手?
- 捡分题(我是门外汉),如何在一个ATLObject中公布一个方法啊!
- 编译时刻却出现这样的错误,如下:
- 在VC++里用WINSOCK控件?
- 各位帮我看一下这个问题!!!
- NURBS 曲线曲面绘制算法
- 请教各位大神一个 MFC 非模态对话框的问题
- VC工具SPY++,拖一个东西经过某个窗口时,那个窗口外框会改变,这是怎么实现的?
- 浏览文件夹的对话框如何创建?
- VC6下使用sqlite3加密的问题(董淳光的加密函数已经实现),大侠请进
响应OnVScroll不添加控件。
你的意思是添加默认的动作条? 你说的这个办法是不是和在资源里面添加 vertical scrollbar 一样么?
//重新设置滚动条位置
CRect rect;
CRect reVScroll;
GetClientRect(&rect);
int nScrollWidth = GetSystemMetrics(SM_CYVSCROLL);
reVScroll.SetRect(rect.right - nHorzScrollHeight, rect.top, rect.right , rect.bottom);
pScrollBar->MoveWindow(&reVScroll); CDialog::OnVScroll(nSBCode, nPos, pScrollBar);