垂直滚动条 移动对话框中的部分控件...
时间:2011-12-28
来源:互联网
对话框窗体控件:第一行有两个Text控件,用来显示用户名和密码
下面有几十个Static控件,用来播放视频,
通过拖动垂直滚动条,显示多个通道的视频。
准备把几是个Static控件放在GroupBox中,
拖动鼠标时,只移动GroupBox和其中的Static控件,
第一行的Text控件不移动。
但是现在只可以整体移动所有控件,第一行的Text也跟着移动了。
下面有几十个Static控件,用来播放视频,
通过拖动垂直滚动条,显示多个通道的视频。
准备把几是个Static控件放在GroupBox中,
拖动鼠标时,只移动GroupBox和其中的Static控件,
第一行的Text控件不移动。
但是现在只可以整体移动所有控件,第一行的Text也跟着移动了。
作者: test111_112233 发布时间: 2011-12-28
C/C++ code
//初始化滚动条可移动范围 BOOL CDlgScrollDlg::OnInitDialog() { // TODO: Add extra initialization here SetScrollRange(SB_VERT, 0, 100); //垂直滚动条 //调整窗体大小,因为同时拖放多个控件时的窗体比较大 //所以这里调整下大小 SetWindowPos(NULL,100,100,500,500,SWP_SHOWWINDOW); return TRUE; } //处理垂直滚动条 void CDlgScrollDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default SCROLLINFO scrollinfo; GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); switch (nSBCode) { case SB_BOTTOM: ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10); scrollinfo.nPos = scrollinfo.nMax; SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; case SB_TOP: ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10); scrollinfo.nPos = scrollinfo.nMin; SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; case SB_LINEUP: scrollinfo.nPos -= 1; if (scrollinfo.nPos) { scrollinfo.nPos = scrollinfo.nMin; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,10); break; case SB_LINEDOWN: scrollinfo.nPos += 1; if (scrollinfo.nPos>scrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-10); break; case SB_PAGEUP: scrollinfo.nPos -= 5; if (scrollinfo.nPos) { scrollinfo.nPos = scrollinfo.nMin; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,10*5); break; case SB_PAGEDOWN: scrollinfo.nPos += 5; if (scrollinfo.nPos>scrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,-10*5); break; case SB_ENDSCROLL: // MessageBox("SB_ENDSCROLL"); break; case SB_THUMBPOSITION: // ScrollWindow(0,(scrollinfo.nPos-nPos)*10); // scrollinfo.nPos = nPos; // SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; case SB_THUMBTRACK: ScrollWindow(0,(scrollinfo.nPos-nPos)*10); scrollinfo.nPos = nPos; SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); break; } CDialog::OnVScroll(nSBCode, nPos, pScrollBar); }
作者: test111_112233 发布时间: 2011-12-28
把需要滚动的放在一个子对话框里,子对话框加滚动,这就不会影响其它的控件了
要么就MoveWindow来实现
要么就MoveWindow来实现
作者: zgl7903 发布时间: 2011-12-28
回复等加分
作者: hustgonia 发布时间: 2011-12-28
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28