如何在mfc的任意地方发出wm_paint消息

liu_feng_fly 2001-08-15 03:47:56
如题,我的意思就是想调用OnDraw函数,该如何实现
...全文
351 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
liu_feng_fly 2001-08-16
  • 打赏
  • 举报
回复
呵呵,这个问题解决了,我把cview的this指针传给dll了,谢谢大家的参与了
sim 2001-08-15
  • 打赏
  • 举报
回复
能向任何地方发吗?
你在OnDraw中Invalidate试试?
包你堆栈益出
wingking 2001-08-15
  • 打赏
  • 举报
回复
你把cview所屬的子窗口句柄傳給dll,然后通過該句柄來操作
liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
(AfxGetApp()->GetMainWnd()->GetTopWindow() )->Invalidate();
AfxGetApp()->GetMainWnd()->GetTopWindow())->UpdateWindow();
不好用
改成getactivewindow()也不好用,我应该如何得到cview的指针呢?要知道,当dll生成的窗口运行的时候,客户程序(mdi程序)是没有焦点的
horsehorse 2001-08-15
  • 打赏
  • 举报
回复
Invalidate(true);
UpdateWindow();
是CWnd类成员函数,得到CView对象指针就可以调用。
liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
说来听听呀
HelloAndOk 2001-08-15
  • 打赏
  • 举报
回复
you
liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
那有没有其他更好的方法呢?
liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
于是我想postmessage,可是不知道如何得到当前活动view的句柄
horsehorse 2001-08-15
  • 打赏
  • 举报
回复
MSDN中已经告诫过,WN_PAINT不能由应用程序自己发出。
方法一:
Invalidate();
UpdateWindow();
两个函数必须成对调用,否则不一定灵。
方法二:终极魔法
ShowWindow(SW_HIDE);
ShowWindow(SW_SHOW);

liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
是这样,我在dll中导出了一个函数,他的客户程序运行这个函数的时候dll就会建立一个窗口,窗口上有一个edit,我想,当我改变edit的内容的时候把这个edit的内容写到客户程序(mdi)的view中去,于是我用了一个回调函数(它是全局函数)。这样问题就来了,当我的全局函数知道edit的内容变化了以后,他要要求view重画,就是这里我实现不了。难道要我在这个全局函数中Invalidate(true);
UpdateWindow();
编译通不过的
111222 2001-08-15
  • 打赏
  • 举报
回复
句柄?你要谁的句柄?自己窗口的可以用GetSafeHwnd();

别人的窗口用FindWindow\Ex

emmai 2001-08-15
  • 打赏
  • 举报
回复
直接调呀OnDraw()
milefo 2001-08-15
  • 打赏
  • 举报
回复
Invalidate(true);
UpdateWindow();
就行的呀!
liu_feng_fly 2001-08-15
  • 打赏
  • 举报
回复
对呀,关键就是这个句饼应该怎么取呀?
111222 2001-08-15
  • 打赏
  • 举报
回复
有句柄和hdc就可以了。

比如:

 ::SendMessage(::GetDesktopWindow(),WN_PAINT,(WPARAM)::GetDC(::GetDesktopWindow()),NULL);


zeal 2001-08-15
  • 打赏
  • 举报
回复
Invalidate(true);

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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