怎样在主窗口和一个对话框之间传递变量

skyrain 2000-08-30 08:58:00
想把在主窗口得到的一个值例如 dcount=100;在一个对话框打开时间去的这个值
...全文
471 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
iforever 2000-09-01
  • 打赏
  • 举报
回复
听HOLLY的
hnalbert 2000-08-30
  • 打赏
  • 举报
回复
You can do just as what softsprite told you.
There is no need of pointer to CWnd.
xiaoyuer 2000-08-30
  • 打赏
  • 举报
回复
只要取得窗口类的指针即可!
U皮特U 2000-08-30
  • 打赏
  • 举报
回复
在MyDialog.h中定义:int m_dcount;
在MainFrm.h中定义:int dcount;
第一贴中的代码是在主窗口CMainFrame中的。
myDialog.m_dcount就是取得CMyDialog类的实例的成员变量m_dcount,然后这个变量可以和主窗口CMainFrame中的变量dcount互相交换值。
。。。。我的汗都下来了!
skyrain 2000-08-30
  • 打赏
  • 举报
回复
softsprite的方法我看不懂,m_count在哪定义的,
dcount = myDialog.m_dcount;什么意思,写在哪儿(我是要取得dcount的值)
Holly 2000-08-30
  • 打赏
  • 举报
回复
另外,尽量采用softsprite在第一贴的方法,直接取变量的方法使代码的控制混乱,是不好的编码风格,应当避免,养成习惯就不好了?
Holly 2000-08-30
  • 打赏
  • 举报
回复
所有的AfxGetApp()或AfxGetMainWnd()的到的指针都需要强制转换
((CMyApp*)AfxGetApp())和((CMainFrame*)AfxGetMainWnd())
skyrain 2000-08-30
  • 打赏
  • 举报
回复
CMyApp是自定义的类吗
a2000 2000-08-30
  • 打赏
  • 举报
回复
在CMyApp中建一个变量dcount;然后在CMyDialog 中用AfxGetApp()->dcount.就行了.
skyrain 2000-08-30
  • 打赏
  • 举报
回复
我用MFC建立了一个单文档程序data,自己添加了一个对话框类,叫mydialog
在dataView.cpp中我得到一个变量 int dcount=100,当点击一个按钮时打开我的对话框,在对话框
中我想用dcount的值,我该怎么做
元明 2000-08-30
  • 打赏
  • 举报
回复
softsprite在第一个回复里说得很详细,仔细看看分析一下.
或者你把自己的问题说得更详细一些.
skyrain 2000-08-30
  • 打赏
  • 举报
回复
我在MainFrm.h中加入public变量dcount,在对话框的MyDialog.h中加入#include "mainfrm.h"
可在用AfxGetMainWnd()->dcount时间编译报CWnd没有这个成员
U皮特U 2000-08-30
  • 打赏
  • 举报
回复
dcount是主窗口中的变量,是你自己提出来的呀!
CMyDialog myDialog(this);这一整段代码可以放在主窗口中你需要弹出对话框的地方。比如你需要按某个菜单项弹出这个对话框,可以在主窗口处理这个菜单项的函数中使用这段代码。
Tiangz 2000-08-30
  • 打赏
  • 举报
回复
在Dialog的.h文件中包含MainFrm.h,若dcount是一个public成员,则可以
GetMainFrame()->dcount,否则可以在MainFrame中定义一个函数专门得到该参数,在
Dialog中调用即可
skyrain 2000-08-30
  • 打赏
  • 举报
回复
这儿的dcount 在哪儿定义?CMyDialog myDialog(this);应该写哪儿?

luxes 2000-08-30
  • 打赏
  • 举报
回复
把这个值定义为主窗口的public成员变量:m_dcount,
在dialog里:访问:AfxGetMainWnd()->m_dcount
U皮特U 2000-08-30
  • 打赏
  • 举报
回复
如果需要传递的变量不多的话,在对话框类中建立相应的成员变量:
CMyDialog myDialog(this);
myDialog.m_dcount = dcount;
if ( myDialog.DoModal() == IDOK )
{
dcount = myDialog.m_dcount;
}

如果需要传递的变量比较多或比较复杂,可以专门建立一个结构放这些变量,在对话框类中建立这个结构类型的指针,用类似的方法传递指针即可。

16,471

社区成员

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

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

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