问一个VC里面OnPaint函数的问题

chenzhuo8804 2010-03-05 12:04:07
请问在VC里面有没有什么函数是能强制调用OnPaint的?
情况是这样的, 我在DOC类里面读取了一个图像文件, 我希望在读取以后立即显示出来,但是好像必须要我强制刷新一下才能让窗口重绘, 然后显示出来图像, 而不能在“读取文件”这个事件发生之后立即调用Onpaint函数(不是Invalidate, 这个函数只有在view里面才能用), 请问能不能强制调用OnPaint呢? 或者能用到什么消息映射吗? 谢谢解答。
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenzhuo8804 2010-03-05
  • 打赏
  • 举报
回复
To 楼上两位:
情况是这样的: 因为读取文件的消息响应函数是:
void CUnsupervisedClassificationDoc::OnFileOpen
是在 Doc类里面, 所以不能直接调用Invalidate 或者 UpdateWindow。
我希望在 OnFileOpen里面能够调用VIEW的OnPaint函数, 或者说给View类发一个WM_PAINT消息。
让view完成重绘的步骤
cpp2017 2010-03-05
  • 打赏
  • 举报
回复
Invalidate(FALSE);
UpdateWindow();
smneo 2010-03-05
  • 打赏
  • 举报
回复
读取以后你让view无效(Invalidate(TRUE)),让它重绘不就可以了?
Eleven 2010-03-05
  • 打赏
  • 举报
回复
引用 7 楼 wendy425 的回复:
Doc类的UpdateAllViews(NULL)函数调用的过程中会自动发出WM_PAINT消息。

right UpdateAllViews()函数通知view刷新数据显示
副组长 2010-03-05
  • 打赏
  • 举报
回复
直接在Doc里面UpdateAllViews即可。
wendy425 2010-03-05
  • 打赏
  • 举报
回复
Doc类的UpdateAllViews(NULL)函数调用的过程中会自动发出WM_PAINT消息。
wendy425 2010-03-05
  • 打赏
  • 举报
回复
在Doc类里 任何一个你觉得适合的函数里面直接调用UpdateAllViews(NULL)就可以了,这个函数本身就属于Doc类。然后你在OnPaint函数或者OnDraw函数里再写相关的显示操作就可以了,因为OnPaint函数也会调用OnDraw函数。
yaoyue1019 2010-03-05
  • 打赏
  • 举报
回复
比如你的图像绘图类
class abc public CView....
abc *pview =new abc();//这里记得把构造函数写到public里
然后在Doc类里使用pview->Invalidate(FALSE);


19,468

社区成员

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

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