问::OnPaint()显示的问题

dycuswine2 2007-05-14 11:47:31
基于对话框的程序
每接到一次数据,在中断中调用Invalidate(),从而调用::OnPaint()。

问题是:
pDCStaticBack->FillRect(rectBack,&WhiteBrush); //下3行十个循环
dc.MoveTo(nowPoint);
dc.LineTo(nextPoint);
pDCStaticBack->TextOut();
//////////////////////////////////////////////////////////////////////////
if (Flag ==TURE)
{

dc.MoveTo(nowPoint); //下3行十个循环,并有double数据计算
dc.LineTo(nextPoint);
pStaticDC->FillRect(CRect(leftPoint,rightPoint), &BlueBrush);
}

当不进if的时候,上面的可以画线,可以textout。当进if的时候,里面复杂的计算和显示画线FillRect正常,但是上面的程序线和textout没有了。 只有当对话框被挡住,再激活重绘的时候,上面的线和textout才出现,此时if逻辑上仍进入。

问:
是不是我的方法不对,怎样让上面的一直显示,if为真的时候也显示?
...全文
219 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dycuswine2 2007-05-15
  • 打赏
  • 举报
回复
CDC *pDCStaticBack = pStaticBack->GetDC(); //用这个类画矩形


CClientDC dc(pStaticBack);//用这个类画线

不应该有冲突吧?

楼上的,我要定位,想在static里面建画图类,然后相对static坐标画。直接调用GetWindowDC()返回的DC 不行吧?
fairyprince 2007-05-15
  • 打赏
  • 举报
回复
使用 GetWindowDC()返回的DC 画
livedeal 2007-05-15
  • 打赏
  • 举报
回复
pDCStaticBack pStaticDC里是不是有什么问题`???
dycuswine2 2007-05-14
  • 打赏
  • 举报
回复
还有一点补充:

我这两个部分都是对Static操作,但是区域不重叠,上面的在static外面,标注刻度。if中的画图,在static里面。

如果把上面的程序段放到if后面,if中的为真也不显示。

是不是同时对static操作有覆盖的问题?
dycuswine2 2007-05-14
  • 打赏
  • 举报
回复
程序段是::OnPaint()里面的

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧