怎样在两个类中相互调用其成员
我定义两个类,一个对话框类,一个SOCKET类,首先:对话框类调用SOCKET类成员,我用增加头文件的办法可以搞定。但是由于工作的需要,SOCKET类工作的情况要在对话框的控件中显示出来,用加头文件的办法是不行的,曾考虑用消息机智来实现,但我在SOCKET类中发的消息只能在STATIC,EDIT这种控件中显示出来,而象LISTBOX控件就不行,请高手指点,在此谢谢啦 问题点数:0、回复次数:3Top
1 楼staticip(staticip)回复于 2003-08-03 18:25:22 得分 0
可以直接调用成员函数,不需要加头文件。
socket类的h文件上加入对话框类的声明,而不是include对话框的h文件:
class CMyDialog;
class CMySocket
{
private:
CMyDialog * m_pDlg;
};
然后在socket的cpp文件中include对话框的h文件,就可以随意调用对话框类的成员。
Top
2 楼autfx(边城浪子)回复于 2003-08-03 18:59:36 得分 0
也可以再
APP中定义一个CSocket *pSocket;
在你的CSocket 初始的时候
((××App *)AfxGetApp())->pSocket=this;
最后在对话框中调用((××App *)AfxGetApp())->pSocket->...;
就可以了
Top
3 楼kui(kui)回复于 2003-08-03 19:50:08 得分 0
在SOCKET类中发的消息也有它的好处,它可等待有空时再处理。
::PostMessage(AfxGetApp()->m_pMainWnd->m_hWnd,WM_COMMAND,ID_MYMSG,0);
在对话框文件中对消息ID_MYMSG进行处理。在对话框文件中处理LISTBOX控件也是行的。
Top




