关于两个对话框的问题,请高手指点,谢谢!!!
我程序有一个主对话框为之创建的类为CMainDialog
在主对话框中用一个按钮产生一个子对话矿,为止创建的类为CSubDialog
现定义一个全局变量static int var;
在主对话框中OninitDialog()中有var=0;
启动主对话框后,按按钮
弹出子对话框
在子对话框中
有var=100;
确定后
回到主对话框后
怎么var=0?
这是什么原因啊?请高人指点!!!
问题点数:100、回复次数:9Top
1 楼yycpp1()回复于 2004-05-01 21:41:51 得分 0
你试试在主对话框的构造函数中给VAR符值后还会不会产生这样的问题的!Top
2 楼sgnaw(李逍遥)回复于 2004-05-01 22:04:50 得分 25
...
按按钮,弹出子对话框 <-----
在子对话框中
有var=100;
确定后,回到主对话框后 <----
...
请给出上面向左键头 <--- 所指的代码实现部分。
Top
3 楼yujia120(永不停息)回复于 2004-05-01 22:10:28 得分 10
BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
Return Value
Nonzero if the operation is successful; otherwise 0. If bSaveAndValidate is TRUE, then a return value of nonzero means that the data is successfully validated.
Parameters
bSaveAndValidate
Flag that indicates whether dialog box is being initialized (FALSE) or data is being retrieved (TRUE).
Remarks
Call this member function to initialize data in a dialog box, or to retrieve and validate dialog data.
Top
4 楼countryboy(沉淀)回复于 2004-05-02 01:33:02 得分 10
没代码怎么知道~!!!!Top
5 楼liquanle()回复于 2004-05-02 07:24:05 得分 10
这个假如没有和到控件变量的话,你有没有在子对话框所在的函数中重新定义了一个同名变量呢。假如不是的话,我感觉是不应该的。Top
6 楼puhuofeie(扑火飞蛾)回复于 2004-05-02 09:34:47 得分 10
UpdateData(true)
这个是对对话框控件用的!
你的变量不需要吧!
请给出所有对var操作的代码,
static int var;
全局变量完全可以不这么定义!
static的作用是什么?
用debug看看,var是怎么改变的!
不会有问题的!
Top
7 楼ohbaby(混混日子骗骗钱)回复于 2004-05-02 09:50:44 得分 25
///////////////////////
启动主对话框后,按按钮
弹出子对话框
在子对话框中
有var=100;
确定后
回到主对话框后
//////////////////////
在弹出子对话框的时候有没有关闭主对话框?Top
8 楼dzqsuper(数风流人物-还看打倒日本猪的人(抵制日货))回复于 2004-05-02 10:23:08 得分 10
要定义一个全局变量吧Top
9 楼samhoust(福田瓜)回复于 2004-05-03 22:34:38 得分 0
谢谢大家,我调试了!puhuofeie(扑火飞蛾) sgnaw(李逍遥) 谢谢! 分数少了!!!
我把变量全局变量赋给指针是行的!
BOOL CWaveExtDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
waveformatex.wFormatTag = WAVE_FORMAT_PCM;
waveformatex.nChannels = 1;
waveformatex.nSamplesPerSec = 16000;
waveformatex.nBlockAlign = 2;
waveformatex.wBitsPerSample = 16;
waveformatex.nAvgBytesPerSec = 16000*waveformatex.wBitsPerSample/8;
waveformatex.cbSize = 0;
pDialog = new CMyDialog();
if (pDialog==NULL)
{
AfxMessageBox("fail to create the dialog object!");
return FALSE;
}
if (pDialog->Create(IDD_MYDIALOG,this)==NULL)
{
AfxMessageBox("fail to create the Sub-Dialog!");
return FALSE;
}
pDialog->ShowWindow(SW_HIDE);
pDialog->pWaveform =&waveformatex;//就是这样干的,否则不行!!!!
....
}Top




