有一个对话框CServerDlg程序,在CServerSocket类中获取CServerDlg类中的OnAccept方法代码如下:
void CServerSocket::OnAccept(int nErrorCode) 
{
((CServerDlg *)((CServerApp *)AfxGetApp()->m_pMainWnd))->OnAccept();
CSocket::OnAccept(nErrorCode);
}
如果我把OnAccept方法不是放到主类CServerDlg类中,而是放在CServerDlg程序的另一个类CTextDlg中,上面的代码怎么修改?还有一个问题,如何把下面的代码改成获取CTextDlg句柄void CCliSocket::OnReceive(int nErrorCode) 
{
CServerDlg *pServerDlg = (CServerDlg *)((CServerApp *)AfxGetApp()->m_pMainWnd);
           .......
}
谢谢!!

解决方案 »

  1.   

    那得看你的CTestDlg对话框实例在哪个类中定义啊。
      

  2.   

    如果就在pServerDlg中,那么就是pServerDlg->m_TextDlg.OnAccept()这样子啊。关键就是m_TextDlg这个变量在哪里。
      

  3.   

    CTextDlg 创建对话框的时候,保存CServerDlg 的对象,可以增加一个CTextDlg 的成员变量保存
      

  4.   

    不知道我说清楚没有,我是在原来的CServerDlg对话框程序中新建另一个CTextDlg对话框的
      

  5.   

    CTextDlg dlg(this);
    这样就CTextDlg中可以通过GetParent()
    ((CServerDlg *)(GetParent())->OnAccept();