void CNewWave::NextPicture(HBITMAP& bm)
{
m_Bmp2.SetBitmap(bm); CRect bmprect;
m_Bmp2.GetClientRect(bmprect);
//m_Bmp2.MoveWindow(0,0,bmprect.Width(),bmprect.Height());
CRect dlgrect;
m_Bmp2.GetClientRect(bmprect); \\图片
m_BrownDlg1.GetClientRect(dlgrect); \\对话框
int xpos = m_BrownDlg1.GetScrollPos(SB_HORZ);
SCROLLINFO vinfo; vinfo.fMask = SIF_ALL;
vinfo.nPage = 100;
vinfo.nMax= bmprect.Width()-dlgrect.Width()+100;
vinfo.nMin = 0;
vinfo.nPos = xpos;
vinfo.nTrackPos = 0;
vinfo.cbSize = sizeof(vinfo);
m_BrownDlg1.SetScrollInfo(SB_HORZ,&vinfo);
}通过这个方法,在m_Bmp2图片增长时候,同时调整滚动条和m_BrownDlg1的位置,但是当m_Bmp2减少时候,在xpos偏移一段距离后m_BrownDlg1位置对不上,需要用ScrollWindow来调整m_BrownDlg1的位置,但是滚动调移动了一段距离,重定位滚动条发生位置偏移了一段,这里该怎么调整!!求救!
{
m_Bmp2.SetBitmap(bm); CRect bmprect;
m_Bmp2.GetClientRect(bmprect);
//m_Bmp2.MoveWindow(0,0,bmprect.Width(),bmprect.Height());
CRect dlgrect;
m_Bmp2.GetClientRect(bmprect); \\图片
m_BrownDlg1.GetClientRect(dlgrect); \\对话框
int xpos = m_BrownDlg1.GetScrollPos(SB_HORZ);
SCROLLINFO vinfo; vinfo.fMask = SIF_ALL;
vinfo.nPage = 100;
vinfo.nMax= bmprect.Width()-dlgrect.Width()+100;
vinfo.nMin = 0;
vinfo.nPos = xpos;
vinfo.nTrackPos = 0;
vinfo.cbSize = sizeof(vinfo);
m_BrownDlg1.SetScrollInfo(SB_HORZ,&vinfo);
}通过这个方法,在m_Bmp2图片增长时候,同时调整滚动条和m_BrownDlg1的位置,但是当m_Bmp2减少时候,在xpos偏移一段距离后m_BrownDlg1位置对不上,需要用ScrollWindow来调整m_BrownDlg1的位置,但是滚动调移动了一段距离,重定位滚动条发生位置偏移了一段,这里该怎么调整!!求救!
解决方案 »
- 谁有Stingray 64位(V10/2006),必重酬,急!!
- 如何实现一个文件模糊查询
- 利用WIN API中CreateFile函数和GetLastError获得计算机获取计算机可用串口!
- 如何CScrollView内所有内容存储为BMP图像?
- ★高分求助★ ActiveX控件去除IE警告框的方法!!
- 关于函数与指针间类型转换的语法
- 一到算法面试题,大家看看
- CEdit中怎么设置 最多能输入多少个字符?(或者有其他控件有这个功能?)
- vc的ado 为什么连不上sql server 2000的数据库?
- resource.h中的内容怎么会不变呢?搞得跟代码无关似地
- OCCI释放metadata崩溃
- MFC settimmer问题 在线等待。
http://www.codeproject.com/Articles/10902/Add-Scrolling-to-a-CWnd-or-CDialog-using-a-C-Helpe
一个比较好用的类。为窗口添加滚动条
SDK版本