CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何在回调函数中调用其他等函数???

楼主jxyhelen1(文武贝)2006-06-02 21:21:45 在 VC/MFC / 基础类 提问

我在程序中使用了回调函数,请问在这个回调函数中如何使用其他的函数???  
  比如调用OnPaint()????? 问题点数:30、回复次数:9Top

1 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-06-02 22:17:58 得分 0

直接用,有什么区别吗?回调函数也是函数!Top

2 楼wenbo_ying(应)回复于 2006-06-02 22:25:10 得分 0

OnPaint是成员函数吧,不能在其它函数里直接调用吧Top

3 楼gao_ming77(小明)回复于 2006-06-02 22:28:27 得分 0

发消息。一般不建议直接调用消息响应函数。而且,如果你的回调不是在主线程,直接调用回有很多问题。Top

4 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-06-02 22:47:00 得分 10

不用直接调用onpaint(),调用Invalidate函数即可。  
   
  你的窗体指针->Invalidate();  
   
  AfxGetMainWnd()函数可以获得当前进程的主窗体指针  
   
  AfxGetMainWnd()->Invalidate();Top

5 楼jxyhelen1(文武贝)回复于 2006-06-03 09:38:59 得分 0

如果是自己声明的函数呢?比如说定义一个函数void   paint(void)  
  在回调函数中该如何调用阿????Top

6 楼CUG122032(烫烫烫烫烫烫?烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫?烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫)回复于 2006-06-03 12:19:26 得分 0

直接用啊.  
   
  On*******(****...)  
  {  
  paint();  
  }Top

7 楼vcPlayer(没有星星,努力做太阳!)回复于 2006-06-03 16:42:17 得分 0

呵呵,莱鸟借用贵宝地一问:  
   
            什么是回调函数啊?Top

8 楼jxyhelen1(文武贝)回复于 2006-06-05 09:41:35 得分 0

CUG122032()你试过了吗?我怎么不能直接调用阿?Top

9 楼fireseed(【VC无敌,英明神武,千秋万代,一统江湖!】—奶油狗)回复于 2006-06-05 12:14:09 得分 20

jxyhelen1(文武贝)   (   )   信誉:96     2006-6-3   9:39:00     得分:   0      
     
     
         
  如果是自己声明的函数呢?比如说定义一个函数void   paint(void)  
  在回调函数中该如何调用阿????  
   
       
     
  ============================================  
   
  我明白你的意思了,一般要这样设计的  
   
  lParam做为参数  
   
  typedef   DWORD   (CALLBACK   *NOTIFYFUNC)(   LPARAM   lParam   );  
  class   A;  
   
  void   ApiFunc(   NOTIFYFUNC   pNotify,   LPARAM   lParam   )  
  {  
          pNotify(lParam);  
  }  
   
   
  DWORD   CALLBACK   MyNotifyFunc(   LPARAM   lParam   )  
  {  
  A*   pa   =   dynamic_cast<A*>lParam;   //   将指针做为参数传入  
  _ASSERT(   pa   );  
  pa->Paint();//调用了  
  }  
   
   
  class   A  
  {  
  public:  
  void   Start(   void   );  
  void   Paint(   void   );  
  };  
   
  void   A::Paint(   void   )  
  {  
  }  
   
  void   A::Start(   void   )  
  {  
  ApiFunc(   MyNotifyFunc,   reinterpret_cast<A*>this   );  
  }  
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:jxyhelen1
  • fireseed
  • fireseed

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo