19,469
社区成员
发帖
与我相关
我的任务
分享
Class XXX
{
CDC* pDC;//设备环境指针
CBitmap bitmap;//内存位图
//...
};
BOOL XXX::OnInitDialog()
{
//...
memDC.CreateCompatibleDC(pDC);
bitmap.CreateCompatibleBitmap(pDC, Width, Height);
//你也可以试试用别的方法或者在别的地方创建位图。
memDC.SelectObject(&bitmap);
//...
}
void XXX::Render()
{
memDC.MoveTo(...);
memDC.LineTo(...);
//绘制你的东西,对bitmap进行操作
}
当你想刷新的时候的响应函数:
{
//...
Render();
//...
}
void XXX::OnPaint()
{
CPaintDC dc(&picture控件控制变量
// TODO: 在此处添加消息处理程序代码
CDialog::OnPaint();
dc.BitBlt(0,0,vWidth,vHeight,&memDC,LeftTop.x,LeftTop.y,SRCCOPY);
//这里直接把bitmap上贴到dc上。
//因为bitmap没有销毁,所以只要OnPaint调用,就会显示,而且不用重新画。
//最后在析构函数里把memDC和bitmap销毁就行了。
}
afx_msg BOOL OnEraseBkgnd(CDC* pDC);