blindcoder

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  5 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

GDI+无闪烁绘图的原理就是不直接在OnDraw函数下绘图,而是先创建个Bitmap对象,然后用刚才的Bitmap对象创建一个Graphics的内存图像,然后所有的绘图操作都在
内存图像中进行,最后用DrawImage方法把内存图像显示到屏幕。
void CDataView::OnDraw(CDC* pDC)
{
    CDocument* pDoc = GetDocument();
    // TODO: 在此添加绘制代码
    pDC->TextOut(100,100,L"数据视图");

    Graphics g(pDC->m_hDC); 

    CRect rcClient; 
    GetClientRect(&rcClient); 
    Bitmap bmp(rcClient.Width(), rcClient.Height()); 
    Graphics * buffergraphics = Graphics::FromImage(&bmp);//关键部分,创建一个内存图像
    SolidBrush brush(Color(255, 0,0, 255)); 
    buffergraphics ->FillRectangle(&brush,0, 0, rcClient.Width(),rcClient.Height()); //在内存图像中画图

    g.DrawImage(&bmp,0, 0, rcClient.Width(), rcClient.Height());//将内存图像显示到屏幕
    delete buffergraphics ; 
    g.ReleaseHDC(pDC->m_hDC);

}
posted on 2009-12-01 12:19 The cpper 阅读(846) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理