问一个关于对话框的问题

绿豆蛙2013 2009-03-03 02:30:44
我在菜单弹出来的对话框上放了一个组合框,在这个对话框类中声明了成员变量CComboBox m_comb,UINT m_uiComb[8],全局变量
并在对话框的构造函数中,令m_uiComb[0]=0;-------m_uiComb[7]=0;

并初始化m_comb.SetCurSel(m_uiComb[channel]);

在组合框的OnCloseupComb()中

m_uiComb[channel]=m_comb.GetCurSel();

但是运行发现在对话框第二次打开之后发现组合框里的值又变成初始化的了,我明白是对话框弹出时又调用了构造函数,所以所有的值都变成初始值了,怎么让它能保存住上次设定的值呢,是不是要把m_uiComb[8]设置成全局变量呢?
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong364 2009-03-03
  • 打赏
  • 举报
回复
UINT m_uiComb[8]; --> static UINT _uiComb[8];
在XXdlg.cpp中
UINT XXdlg::_uiComb[8] = {0};
去掉构造函数中为m_uiComb赋初值
zhanghaaaa 2009-03-03
  • 打赏
  • 举报
回复
学习一下
schlafenhamster 2009-03-03
  • 打赏
  • 举报
回复
把UINT m_uiComb[8]放MainFrame或App中,domodul前把它付给dlg.
绿豆蛙2013 2009-03-03
  • 打赏
  • 举报
回复
我用的是把它们设为全局变量,也可以实现
绿豆蛙2013 2009-03-03
  • 打赏
  • 举报
回复
m_uiComb[0]=0;-------m_uiComb[7]=0;
你说的他们是指上面的的吗?放到initdlg里面程序第二次调用的时候还是要把它们都赋值为初始值啊,不好意思,能不能讲详细一些
xxweilw 2009-03-03
  • 打赏
  • 举报
回复
不用,你可以把他们的值都写在ini里,然后修改ini里的值

15,979

社区成员

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

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