CScrollView中画图问题
来源:互联网 发布:求主析取范式算法 编辑:程序博客网 时间:2024/05/01 04:06
问题描述:
定义继承自CScrollView的类,在该类中进行画图,出现了一些问题:
拖动滚动条,图像部分随之移动,但是被边框覆盖过再次被拉出来后的部分没有显示了。
问题分析:
该问题出现是因为矩形框坐标设置不当。出问题的时候,准备被画的矩形坐标同当前客户区大小关联,也即是使用了
CRect rcClient;
GetClientRect(&rcClient);
pDC->DPtoLP(&rcClient);
const int nPading = 100;
int nLeft = rcClient.left + nPading;
int nRight = rcClient.right - nPading;
int nTop =rcClient.top - nPading;
int nBottom = nTop - 4*nPading;
CRect rect(nLeft, nTop, nRight, nBottom);
这个时候使用rect绘制就会出现上面的问题。
解决问题:
将rect坐标同rcClient相关联的部分修改,使他们不存在联系,问题即可解决。
深入分析:
出现该问题据本人分析是绘图过程中坐标处理不当,没有理解绘图时使用的坐标系统。
绘图时涉及到了窗口window和视口view
关于这个问题的解释,在http://bbs.csdn.net/topics/10155935中
- shawn_liu
问题说的我认为是对的。
对于画图闪屏的问题,有一种双缓冲的方法可以解决
在http://blog.csdn.net/jiangdf/article/details/7234562中有较为好的说明,尤其是这篇文章中说明了设备坐标和逻辑坐标
- CScrollView中画图问题
- 在CScrollView中使用双缓存画图的拖动问题
- CScrollView中双缓冲画图
- CScrollView中双缓冲画图
- CScrollView中的坐标问题
- CScrollView
- CScrollView
- 删除CScrollView中滚动条
- MFC中CRectTracker在CScrollView中使用时问题的解决办法
- VC在多文本的CDockable中使用CScrollView的问题
- 在对话框中应用CScrollView显示图像
- 对话框中添加视图方法- CScrollView
- MFC中CView转化为CScrollView
- HTML5中Canvas画图片的问题
- R画图中常见15个问题
- OnPaint中画图遇到的问题
- 画图问题
- MFC中CScrollView类的使用以及CScrollView的双缓冲绘图
- 简单之美——系统设计黄金法则
- rcp(插件开发)深入理解菜单(Menu)功能及其扩展点
- 如何在Android中启动JAVA程序
- GDB的使用方法(推荐)
- 企业的任何方法均可融入敏捷技术
- CScrollView中画图问题
- UtilBox(ub)基础组件 -- ConfigureLoader文件配置读取模块
- MFC对话框最小化到托盘编程实现步骤
- read by other session等待事件
- android4.0 编译报错的解决方法
- amcharts使用总结
- Ubuntu:MySQL数据库和相关工具的下载
- Could not instantiate class named NSLayoutConstraint
- Android命令am简介