VC中对话框编程赋值出现的问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 20:20:30
编写了一段程序,从对话框中输入数据存储到相应的变量中,但其中出现了问题.
下面程序中,赋值号右边的是与对话框中编辑框关联的变量,左边是需要存储的变量.我在调试运行程序时发现当我往编辑框内输入数据后,某些变量能通过关联的编辑框变量赋值,某些就不行.
具体是pDoc->ylpfk[0]=spfk.m_ylpfk1;
这些语句,右边的变量值是我输入的值,左边的变量始终得不到右边得值
而pDoc->spfasj=spfk.m_spfasj;
pDoc->zsjpfka[0]=spfk.m_zsj1pA;
这些语句就能使左边变量得到相应得值.
请高手指点下为什么会出现这种情况
void CDrawView::OnSpfengkou()
{
// TODO: Add your command handler code here
CSPFENGKDlg spfk;
//CString ss;
CDrawDoc* pDoc = GetDocument();
if(spfk.DoModal()==IDOK)
{
pDoc->spfasj=spfk.m_spfasj;
pDoc->zsjpfka[0]=spfk.m_zsj1pA;
pDoc->ylpfk[0]=spfk.m_ylpfk1;
}
}
DoModal后spfk.m_ylpfk1 有值
pDoc->ylpfk[0]=spfk.m_ylpfk1;
后pDoc->ylpfk[0]无值
就是这样的~
ylpfk[0],spfk.m_ylpfk1都是double型的变量.
zsjpfka[0]和spfk.m_zsj1pA;也是double型.
我实在是不明白为什么有的时候pDoc->ylpfk[0]会无值 ,有时候又有值.

你所有的赋值语句都是一样的,基于同一个语法.
如果你的做法一致的话,应该有同样的效果.
看看你的编辑框类型是不是一样,都应该是:value型的
如果是数值的话应该是:int float 等等
还有看看你的等号左右类型是不是一样!

你要在适当的事件里,比如失去焦点时用UpdateData(TRUE);去更新关联的变量啊?!

UpdateData(TRUE);
立刻把值保存到变量。

UpdateData(FALSE);
立刻把变量的值显示出来。
----------------------------
DoModal后spfk.m_ylpfk1 有值
pDoc->ylpfk[0]=spfk.m_ylpfk1;
后pDoc->ylpfk[0]无值

这里你可以插入一些语句来显示 那些变量的值啊.

或者调试一下.只有这点代码又不能说明什么问题.

DoModal后spfk.m_ylpfk1 有值
pDoc->ylpfk[0]=spfk.m_ylpfk1;
后pDoc->ylpfk[0]无值
对不?

说详细点
m_ylpfk1
ylpfk[0]
怎么定义的?

等半天也不补充!晕,都是些什么人......