急!如何建一个指向CDialog类的指针?谢谢各位大哥的帮助!

robin2001ren 2001-04-16 12:48:00
小弟正在做一个网络五子棋游戏,分为服务器端和客户端两个程序。客户端主要是一个CClientDlg类,另外还有CSocket类。有关的发送消息和接收消息的工作都在CClientDlg类中完成。现在的问题是,我要做登陆和注册界面,为此加了两个Dialog框,并建了相应的两个CDlialog类,在这两个类中完成登陆和注册工作,但由于登陆和注册时要用到的发送相关消息数据的函数写在CClientDlg中,不知如何在登陆和注册类中引用这个发送消息数据的函数。我想在CCliengDlg类中用一个指向CDialog类的指针,将给CClientDlg类的指针传给这个指向CDialog类的指针,以便在登陆和注册类中引用发送相关消息数据的函数,不知给怎么用。望各位大哥帮一把,谢了!!最好有程序。
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
moony_blue 2001-04-17
  • 打赏
  • 举报
回复
1.在Clogin类加入CClientDlg对象指针成员. public CClientDlg *m_pParentDlg;
2. 在调用Clogin对象的DoModal( )前 用this赋予Clogin的CClientDlg 成员
void CClientDlg::OnLogin( )
{
//.......
Clogin dlg;
dlg.pParentDlg = this;
dlg.DoModal();
//........
}
这样就OK了!
zzh 2001-04-16
  • 打赏
  • 举报
回复
你在这两个类中定义一个指向CClientDlg的指针变量,这个类应该在登录对话框出现前就已经建立,在得到了指向它的指针后,你就可以作你想作的任何东西了,
比如:
在InitInstance()函数中
CClientDlg *pDlg;
pDlg = new CClientDlg();
pDlg->Create();
Clogin dlg;
dlg.m_pClientDlg = pDlg; // 把指针值得到
dlg.DoModal();
这样,在Clogin类中就可以通过m_pClientDlg指针来进行操作了。
ccmy 2001-04-16
  • 打赏
  • 举报
回复
有两种办法,一是如果你的发送消息数据的函数可以作为CClientDlg的静态成员的话,就可以
直接通过域操作符来引用,如CClientDlg::iSendMsg(),但考虑到你的发送函数需要创建socket
连接,不适宜作为静态成员,可以用传指针的方法,当然,在传指针之前肯定要先创建CClientDlg对话框实例,在构造你的登陆对话框时,可传入,如CLogon(&dlg);然后在你的登陆类中就可以取父窗口指针来访问其成员,如 ((CClientDlg*)GetParent())->iSendMsg(l_acBuf);

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧