Visual c++ 主父对话框(MFC)菜单中的弹出对话框?

Visual c++ 主父对话框(MFC)菜单中的弹出对话框?,visual-c++,mfc,Visual C++,Mfc,@奥伊马克 我无法从对话框C设置中读取变量 我不确定这段代码有什么错误 void CCStatsDlg::OnClickSettings() { CSettings dlg; if (dlg.DoModal () == IDOK) //Problem is here I am not getting the expected value { int m_SampleNumber = dlg.getvalue (); } } 我在CCStatsD

@奥伊马克

我无法从对话框C设置中读取变量
我不确定这段代码有什么错误

void CCStatsDlg::OnClickSettings()
 {   

 CSettings dlg;

if (dlg.DoModal () == IDOK)

 //Problem is here I am not getting the expected value

   {
         int m_SampleNumber = dlg.getvalue ();
   }
}
我在CCStatsDlg类中这样做是因为我需要在这里处理CSettings对话框值。m_SampleNumber在CCStatsDlg类构造函数中初始化为1024。下面是CSettings类中的getvalue()

CSettings::CSettings(CWnd* pParent /*=NULL*/)
: CDialog(CSettings::IDD, pParent)

{

  SampleNumber =2048;

}

CSettings::~CSettings()

{
}

void CSettings::DoDataExchange(CDataExchange* pDX)

{
CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT_SAMPLE1, SampleNumber);

}

int CSettings::getvalue()

  {

   return SampleNumber;

  } 
即使我将2048返回为SampleNumber,CCStatsDlg中的m_SampleNumber也不会得到在构造函数中初始化的1024


所以请帮我解决这个问题。谢谢

所以您需要创建新的CDialog派生窗口,然后显示它

将此代码置于单击事件:

CMySettingDialog dlg;
dlg.DoModal();
您可以找到一些示例,然后

做您想做的事情:
x将函数与设置菜单项的OnClick事件关联(例如使用其属性窗口的选项卡)->这将在MainFrm.h和.cpp文件中自动生成函数
x实例化一个成员结构,或您希望从CCStatsDlg类.h和.cpp中的硬件获取的变量
在CCStatsDlg类的OnOK()函数中填充变量
x在CCStatsDlg.h和.cpp文件中添加一个或多个函数,如:

int GetValue1()
x使用以下命令调用对话框:

    CCStatsDlg dlg ();  
    if dlg.DoModal () == IDOK
    {
       // Here you can get your variables values once OK is clicked inside your dialog box
       int value1 = dlg.GetValue1 ()
    }

希望这将有助于

在读取变量时存在一些问题C设置dlg;如果(dlg.DoModal()==IDOK){int m_SampleNumber=dlg.getvalue();}我在CCStatsDlg类中执行此操作,因为我需要在此处处理CSettings对话框值。m_SampleNumber在CCStatsDlg类构造函数中被初始化为1024。下面是CSettings类int CSettings::getvalue(){return SampleNumber;}中的getvalue(),即使我返回2048作为SampleNumber,CCStatsDlg中的m_SampleNumber未获取初始值始终为1024的数据constructor@Vaish我不明白你的问题。你能用新代码编辑你的第一篇文章吗?如果你的变量“m_SampleNumber”是在别处定义的,只需删除“int m_SampleNumber=…”声明中的“int”字符串,否则你的变量只能在你的if语句中有效。