我是一个VC入门者,我编了一个小程序,是在坐标系中画两条动态的曲线
采用定时器,运行正常,但当别的窗口覆盖它再移开后,或者是最大化最小化后,
画的东西都不见了,前面我已问过这个问题,有几位大虾回答如下:(已结贴)1.随时把你的画图的数据存在doc中,然后在OnDraw中根据文档中的数据画图就好了
2.需要自己提供刷新机制
OnDraw, OnPaint里面需要重新画一次,也可以使用缓冲来Bitbit
3.简单的在 OnPaint 在画一次,但这样较慢,
可以建立一个内存DC 往这里画,每资画时贴上就可以了,这样软快 可我的是动态的画面,是不是随时要保存?我是一名初学者,这几位大虾说了思路,可我还是不会,老板又催得急,哪位帮帮忙保住我的饭碗,小妹先谢谢了!若有
比较简单的例子更好,
再一次表示感谢!!!
采用定时器,运行正常,但当别的窗口覆盖它再移开后,或者是最大化最小化后,
画的东西都不见了,前面我已问过这个问题,有几位大虾回答如下:(已结贴)1.随时把你的画图的数据存在doc中,然后在OnDraw中根据文档中的数据画图就好了
2.需要自己提供刷新机制
OnDraw, OnPaint里面需要重新画一次,也可以使用缓冲来Bitbit
3.简单的在 OnPaint 在画一次,但这样较慢,
可以建立一个内存DC 往这里画,每资画时贴上就可以了,这样软快 可我的是动态的画面,是不是随时要保存?我是一名初学者,这几位大虾说了思路,可我还是不会,老板又催得急,哪位帮帮忙保住我的饭碗,小妹先谢谢了!若有
比较简单的例子更好,
再一次表示感谢!!!
解决方案 »
- VC如何判断JPG文件是可读的或完整的?
- OCX控件怎么做啊?高人请进
- 在动态库中如何使用定时器SetTimer或类似的方法,我用的是SetTimer但是有问题,不能在程序内部触发函数
- 谁知道,Maxthon里面那种两列排在一起的收藏夹的菜单怎么做的啊??
- vc.net里面怎么传递参数啊?
- 如何得到IMAGELIST中的BITMAP句柄,并能贴在剪贴板中
- 为响应“高结贴率”的号召小辈特问一个问题: COM落后了吗?
- 这个c语言的宏生成代码该怎么写?
- 控件关联变量和控件类对象的区别是什么?
- c++6.0的程序运行总是不通过,求大神分析一下?
- 有关于mutex的问题
- 怎样得到鼠标在CPicture 控件中的位置
2:每次你的窗口要进行重画的时候算出你的窗口和这个DC的相对位置然后在此DC中得到一个矩形区域BITBLT过去就行了.
在OnPaint里直接调用它一次不就行了?
{
CPaintDC dc(this); // device context for painting
int nSize = m_aPoint.GetSize();//m_aPoint是要曲线点数据数组
if (nSize == 0)
return; CDC memDC;
if (!memDC.CreateCompatibleDC(&dc))
{
OutputDebugString(_T("CreateCompatibleDC failed"));
return;
}
CRect rcClient;
GetClientRect(&rcClient);
int nSrcDelta = rcClient.Width()/m_nDivideV;
CPen pen;
pen.CreatePen(PS_SOLID, 1, RGB(128, 255, 255));
CPen *pOldPen = dc.SelectObject(&pen);
CPoint ptLast = m_aPoint.GetAt(0);
dc.MoveTo(ptLast);
for (int i = 1; i < nSize; i++)
{
ptLast = m_aPoint.GetAt(i);
dc.LineTo(ptLast);
} dc.SelectObject(pOldPen);
// dc.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &memDC, 0, 0, SRCCOPY); // Do not call CWnd::OnPaint() for painting messages
}