关于回调函数的一个问题
pgcat 2004-11-10 07:45:06 程序里的一个子窗体需调用一回调函数,但当程序返回后该窗体类本来已经赋值的成员变量都清空或者由构造函数重新赋值,不知道是怎么回事情 。
如窗体类 CaDlg 中
oninitdialog 本来已经将 m_x 初始化,
在调用一回调后
LRESULT CALLBACK WndProc1( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
//CaDlg* dlg=new CaDlg();
switch( uMsg )
{
case WM_LBUTTONDOWN:
//((CaDlg* )AfxGetMainWnd())->ProcessLButtonDown( hwnd );
//AfxGetMainWnd()
//((CaDlg* )((CMainDlg*)(::AfxGetApp ()->GetMainWnd ()))->GetMyWnd())->OnInitDialog ();
((CaDlg* )((CMainDlg*)(::AfxGetApp ()->GetMainWnd ()))->GetMyWnd())->ProcessLButtonDown (hwnd);
//dlg->ProcessLButtonDown (hwnd);
//delete dlg;
return 0;
}
本来我直接用AfxGetMainWnd() 但想了下这是主窗体句柄
就转了几个弯子取的该子窗体句柄,然后调用成员函数aDlg::ProcessLButtonDown(),这时候发现以前初始化的变量都清空或者由构造函数重新赋值 谢谢 帮忙看看,分还有 :)