MFC中CScrollView对话框位置及滚动条调整
来源:互联网 发布:plsql数据导出命令 编辑:程序博客网 时间:2024/06/10 22:12
在MFC中CScrollView嵌入的是对话框的时候,可以简单快速实现滚动条的大小:
- CSize sizeTotal(0, 900);
- SetScrollSizes(MM_TEXT, sizeTotal);
但是在实际运用当中,发现滚动条的范围和对话框还是需要不断地做动态的变更,有时候需要滚动,而有时候又不需要,所以需要不断地做动态调整。
这里提供解决方式主要是在ScrollView的中OnSize()消息函数中做调整。
#define TEST_SCROLLVIEW_HEIGHT 540 // CScrollView高度#define TEST_SCROLLVIEW_WIDHT 980 // CScrollView宽度#define TEST_SCROLLVIEW_SCROLL_LENGHT 20 // 滚动条所占宽度void CTestView::AjustScrollView(CRect& rect,CDialog* pDlg,int cx, int cy){if(NULL == pDlg){return;}if( rect.Height() > TEST_SCROLLVIEW_HEIGHT){if(rect.Width() < TEST_SCROLLVIEW_WIDHT){pDlg->SetWindowPos(this,0,0,TEST_SCROLLVIEW_WIDHT,cy,SWP_NOZORDER);this->SetScrollSizes(MM_TEXT, CSize(TEST_SCROLLVIEW_WIDHT,cy));this->SetScrollPos(SB_HORZ,0,TRUE);}else{pDlg->SetWindowPos(this,0,0,cx + TEST_SCROLLVIEW_SCROLL_LENGHT,cy + TEST_SCROLLVIEW_SCROLL_LENGHT,SWP_NOZORDER);this->SetScrollSizes(MM_TEXT, CSize(cx,cy));}}else{if(rect.Width() < TEST_SCROLLVIEW_WIDHT){pDlg->SetWindowPos(this,0,0,TEST_SCROLLVIEW_WIDHT,TEST_SCROLLVIEW_HEIGHT,SWP_NOZORDER);this->SetScrollSizes(MM_TEXT, CSize(TEST_SCROLLVIEW_WIDHT,CMAINTENANCE_SYSTEMVIEW_HEIGHT));this->SetScrollPos(SB_HORZ,0,TRUE);}else{pDlg->SetWindowPos(this,0,0,cx + TEST_SCROLLVIEW_SCROLL_LENGHT,TEST_SCROLLVIEW_HEIGHT + TEST_SCROLLVIEW_SCROLL_LENGHT,SWP_NOZORDER);this->SetScrollSizes(MM_TEXT, CSize(cx,TEST_SCROLLVIEW_HEIGHT));}this->SetScrollPos(SB_VERT,0,TRUE);}}函数说明如下:
// 功能说明:调整滚动视图中对话框大小和位置及滚动条范围// 参数:// @rect 滚动视图大小// @pDlg 滚动视图中对话框// @cx、@cy 拖动视图时位置变动void AjustScrollView(CRect& rect,CDialog* pDlg,int cx, int cy);
void CTestView::OnSize(UINT nType, int cx, int cy){CScrollView::OnSize(nType, cx, cy);CRect rect;GetClientRect(&rect);if(m_testDlg.GetSafeHwnd()!=0){AjustScrollView(rect,&m_testDlg,cx,cy);}}
阅读全文
0 0
- MFC中CScrollView对话框位置及滚动条调整
- 删除CScrollView中滚动条
- MFC 滚动条 CSCROLLVIEW的使用
- MFC中控件大小和位置随对话框大小调整
- MFC中把viewl类的基类由CView转换成CScrollView,使用滚动条的方法
- MFC,对话框滚动条使用
- MFC对话框处理滚动条
- 使用CScrollView创建滚动条
- 使用CScrollView创建滚动条
- 隐藏CScrollView横向滚动条
- 使用CScrollView创建滚动条
- 使用CScrollView创建滚动条
- MFC---之对话框滚动条的使用
- MFC窗口滚动功能 CScrollView类
- ClistCtrl中滚动条位置自动滚动
- MFC TableControl控件子对话框 以及子控件 随主对话框 最大化后 调整大小及位置
- 【MFC】:MFC中如何实现滚动条?
- MFC动态调整对话框控件位置和大小
- 基于JavaMail的Java邮件发送:简单邮件发送
- MySQL对数据表进行分组查询(GROUP BY)
- fzu-2260
- java.lang.reflect.InvocationTargetException
- 第十七篇:深入Java内存模型—内存操作规则总结
- MFC中CScrollView对话框位置及滚动条调整
- xutils请求数据上下拉刷新加载
- BPDU网桥协议数据单元
- camera2 opengl实现滤镜效果录制视频 二 双SurfaceView渲染
- 微服务架构的优势与不足
- mybatis Generator 配置详解
- Oracle数据库中的时间日期函数的使用
- 【BigHereo 7】-----面 试 再 总 结
- nutch1.6安装使用中错误解决方法