回调函数的使用 CallBack

来源:互联网 发布:js获取昨天日期 编辑:程序博客网 时间:2024/05/17 00:10
typedef void (CALLBACK *CallBackFun)(void *pOwner);class CDirectButton  {  public:      void SetCallBackFun(CallBackFun Fun){m_CallBackFun=Fun;}  private:      void * m_ParentWnd;//父窗口c++对象的指针          CallBackFun m_CallBackFun ;   };void CDirectButton::OnLButtonUp( CPoint point )  {      if (m_DrawRect.PtInRect(point))      {          m_CallBackFun(m_ParentWnd);      }      else      {          n_ButtonState=Normal ;      }  }CDirectButton * pButton1=new CDirectButton ;  pButton1->SetCallBackFun(CallBackSettingButton);class CDlgWeather : public CDialog  {     public:static void CALLBACK CallBackSettingButton(void * pWnd);};void CDlgWeather::CallBackSettingButton( void * pWnd )  {      CDlgWeather * pDlgWeather= (CDlgWeather *)pWnd ;        pDlgWeather->m_IspressSetting=FALSE;        ::SendMessage(pDlgWeather->m_hMainWnd,WM_SHOW_SETDLG,0,0);      pDlgWeather->m_IspressSetting=TRUE;      pDlgWeather->m_bIsTracking=FALSE;    }