注册 登录
编程论坛 VC++/MFC

VC 6.0 Tab 控件疑惑

tigeraa 发布于 2013-07-07 01:59, 1551 次点击
请问 基于对话框的程序中在Tab 控件中有两个子对话框,每个子对话框中有四个 Edit 框控件,一个按钮,想实现以下功能:

1.在子对话框的CEdit1和CEdit2中输入数字,按下按钮,会根据已知公式计算出两个值,并且显示在CEdit3 和CEdit4中.
2.在Tab切换时,可以自动做CEdit的UpdateData(True).

目前,Tab控件可以切换显示相应的对话框,,通过编译,可以运行,但是输入数字,按按钮无反应。请高人指点。

似乎是在子对话框的构造函数里设的值,都无法显示到Edit控件中,请看附件。
只有本站会员才能查看附件,请 登录


6 回复
#2
yuccn2013-07-07 09:36
    CDialog m_gsmdialog;
    CDialog m_wcdmadialog;
这两个是CDialog ,不是wcdma和gsm,这就是点击按钮没有反应的原因,(wcdma和gsm 这两个类名,起名起的太差了)

    m_gsmdialog.Create(IDD_gsm,GetDlgItem(IDC_TAB1));
    m_wcdmadialog.Create(IDD_wcdma,GetDlgItem(IDC_TAB1));

你这样也只是创建到一个CDialog 而已,创建的依然不是wwcdma和gsm。只不过你把那个窗口样式创建出来了而已。

把这两个
  CDialog m_gsmdialog;
    CDialog m_wcdmadialog;
改成wwcdma和gsm 。记得包含对应的头文件。


程序还存在的其他问题
1 很多的UpdateData调用,应该写成 UpdateData()
2
m_CurSel=m_tab.GetCurSel();
    pDialog[m_CurSel]->ShowWindow(SW_SHOW);

m_CurSel 大于等于2 时候,就违规访问了,因为pDialog[2] 是不存在的
#3
tigeraa2013-07-07 12:52
多谢大侠,可是我改成以下模式,

gsm m_gsmdialog;
wcdma m_wcdmadialog;

之后编译过不了,哪个头文件里应该注意修改啊?,怎么办?
#4
yuccn2013-07-07 13:28
回复 3楼 tigeraa
那两个类在那个头文件定义的就包含那个头文件。
#5
tigeraa2013-07-07 20:49
解决了,多谢大侠!
#6
xiaqizjy2013-07-24 10:10
回复 2楼 yuccn
只有本站会员才能查看附件,请 登录
求大神看看这个问题出在哪,,初学者。。
#7
试试212016-06-10 13:22
来学习学习
1