求教对话框控件变量的问题

babamama11 2010-04-08 01:07:33
我在程序里新增了一个菜单项,点击它时弹出一个模态对话框,上面有一组单选控件,我在该对话框类里为这组控件定义了一个int型变量,现在程序运行时单击对话框的OK时控件变量的值已经与控件关联了,但是我想在这个对话框类以外的类里用到这个控件变量,应该怎么做呢?

我有试过在调用的地方定义一个该对话框类的实例,然后通过实例调用其成员变量,但是此时变量并没有与控件关联起来,也就是说我改变控件的选择,该实例的变量成员并不变化,这是怎么回事噢?谢谢大家了先
...全文
52 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
babamama11 2010-04-14
问题解决啦~~~谢谢大家~~~
回复
heiheizh618 2010-04-08
不用传递全局变量的。把你的对话框里面的那个变量设置成public就行。
对话框窗口消失之后,对话框的类对象不会删除的,所以里面的变量依然可以使用
CDialog dlg;
dlg.Domodal(); //在对话框出来的时候再进行选择的操作,变量就会更新成你要的数据了
int i=dlg.m_yourIntMember;
回复
heiheizh618 2010-04-08
对你的控件点右键->添加变量->“选择类别”value型->输名字,然后变量关联完成了。

然后在这个控件的属性列表中选择那个闪电的图标,有一个LBN_SELCHANGE,点右边的空白处,添加响应函数。
然后在添加的函数里面写
yourMenber=GetWindowTest();

用listBox控件做试验吧
回复
babamama11 2010-04-08
回复1L:我就是这样试的,但是通过对象来调用变量时不能实时更新
回复4L:不好意思我没太看懂你的意思
回复2L:我想要做的就是添加若干个新的菜单选项,用户通过菜单项完成设置,然后后台程序根据关联的控件变量进行响应,我有试过把这些菜单中包含的控件变量都放在同一个结构体中,这个结构体在View类中声明为全局变量,菜单设置有变化时,在更新控件变量的同时,将这些变量同时传递给结构体中的对应参数,然后主程序中直接调用结构体参数获得控件信息,但是在UpdateData(true)后,调用全局结构体传递控件变量时编译总是提示那个全局变量未定义,这是怎么回事噢
回复
heiheizh618 2010-04-08
改变选择的时候要手动更新变量的值
比如CComboBox变量。
你添加一个相应SecletChange的消息相应函数;
里面这么写

void OnxxxSelectChange() //函数原型不是这样,用VS自动给你加
{
m_int=选择的值;
或者
UpDate(); //这个如果的控件关联的变量是通过向导加的话,直接用就行。手动加
//就需要到DDX函数里面改一下,仿照其他的格式自己写
}
回复
yujunnb 2010-04-08
.....................
回复
小猪瑞比 2010-04-08
定义一全局变量 点击OK时赋值

在别处extern使用
回复
heiheizh618 2010-04-08
把这个变量设置成public咯
然后 用对话框对象调用呀
比如CDialog dlg;
dlg.m_int;
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2010-04-08 01:07
社区公告

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