fancyliujing的个人博客分享 http://blog.sciencenet.cn/u/fancyliujing

博文

滚动视图里绘图关于刷新

已有 4546 次阅读 2009-11-19 16:15 |个人分类:未分类|系统分类:科研笔记| 刷新, 滚动视图

  首先 在ONDRAW()函数里需要对CDC对象进行转换,CScrollview类的ONPREPAREDC()成员函数会自动根据水平和垂直滚动条位置自动设定DC原点,(即滚动条起始位置为原点),因为原CCLIENT DC对象始终以实际客户区的左上角为原点。

下例实现在虚拟客户区画一个坐标系统:

void CSplitLayerView::OnDraw(CDC* pDC)
{

  OnPrepareDC(pDC);
 CPen pen[5];//定义一个画笔对象
 pen[0].CreatePen(PS_SOLID,5,RGB(255,0,0));//创建一个画笔  画框架
 pen[1].CreatePen(PS_SOLID,3,RGB(0,0,255));//   
 pen[2].CreatePen(PS_SOLID,1,RGB(0,255,0));//   
 CPen *poldpen;//定义一个保存指向设备上下文原油画笔的指针
 poldpen=pDC->SelectObject(&pen[0]);
 CSize size;
    size=GetTotalSize();//获取整个滚动虚拟客户区的大小 
 pDC->Rectangle(size.cx/20,size.cy/20,size.cx*3/20,size.cy*18/20);
   // pDC->Rectangle(size.cx*4/20,size.cy/20,size.cx*6/20,size.cy*18/20);
 pDC->SelectObject(poldpen);//恢复设备上下文的原有画笔
 pen[0].DeleteObject();        //删除所创建的画笔资源

}



https://blog.sciencenet.cn/blog-272367-272229.html

上一篇:在对话框窗体上创建视图
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-28 17:17

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部