如何在控件上绘制

Allen 2003-07-21 05:11:03
在Dlalog的OnPaint函数中所绘制的图形会被PictureControl挡住的问题:
其实在PictureControl上绘制图形的问题与在其他控件上绘制图形的问题一样:

使用与控件相关的CDC的确可以在控件上绘图,但由于在OnPaint中会调用

CDialog::OnPaint(),当控件被重新绘制的时候,原先在控件上所绘制的图形就

被覆盖了。可是又不可能不调用CDialog::OnPaint,否则控件就不会显示了。而

且无论把绘制的程序段放在这个CDialog::OnPaint之前还是之后,情况都是一样

的,看样子这个函数使用的是异步机制。
你有什么方法可以在控件上绘制图形吗?
除了用BitBlt或是ownerdraw或者子类化把所有的东西直接画出来!我可不想越弄

东西越多!其实我想问的问题就是,如何让我自己的绘图代码在控件被绘制之后

才调用!
...全文
26 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjiangwin 2003-07-22
  • 打赏
  • 举报
回复
你只有通过ownerdraw才能达到你的目的。
Allen 2003-07-22
  • 打赏
  • 举报
回复
我的意思是:不是决定什么该画什么不该画,而是安排绘制的次序、时间。所有的东西都要画的
fuhongxue 2003-07-21
  • 打赏
  • 举报
回复
你可以用一个开关量来设一下,然后OnPaint()中判断这个开关量来决定画什么,哈哈
这个方法有点土,但我想应该有效哦。

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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