如何得到窗口指针?

arden1019 2006-08-14 03:58:38
弱弱问一个问题:

如何在非窗口类的区域得到窗口的指针?

详细的说一下:

我创建了一个基于对话框的MFC工程。在对话框(MyDlg)里放置了一个listbox 控件(m_list)。我想在对话框类的其他地方得到MyDlg的指针,来控制此listbox.

我在另外一个类里(Myclass),声明了一个指针: MyDlg *pmydlg;

我该如何得到MyDlg的地址? pmydlg=?



...全文
156 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
InvidentXp 2006-08-14
  • 打赏
  • 举报
回复
嗯,这个问题值得我们研究
  • 打赏
  • 举报
回复
确实是个很白痴的问题.楼上2位的方法都不要采用.最好的做法其实是用管理的思想.你现在有一个类需要这个对话框的指针,不能保证你有更多的类需要这个指针,最简单的方法无法就是用个全局变量,毕竟整个程序在运行的过程中只有一个实例,但是,在C++里面,用全局变量不是好的习惯.所以,可以使用注册的方法,写一个基类,类中声明 vitual void Register(CWnd* pWnd);在实现在中保存对话框指针,然后以后写的非对话框类就从这个基类派生,需要用到对话框指针就直接从基类取出使用.最后忠告一句,根据我2年的项目经验,AfxGetWnd这个函数最好不要用,否则将会给产品维护带来不必要的麻烦.Over.
dick_song 2006-08-14
  • 打赏
  • 举报
回复
你的另外一个类里(Myclass)是谁创建的?它有对话框(MyDlg)的指针吗?有就传给Myclass咯。一般那个对话框和你的另一个类都是APP类创建的吧?
cleverwyq 2006-08-14
  • 打赏
  • 举报
回复
(MyDlg *)AfxGetMainWnd( );

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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