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;
}