从主父对话框(MFC)的菜单中弹出对话框?
@oaimac,
我无法从对话框 CSettings 读取变量
我不确定这段代码有什么问题,
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
所以请帮助我解决这个问题。谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
做你想做的事:
x 将函数关联到“设置”菜单项的 OnClick 事件(例如使用其属性窗口的选项卡)->这将自动生成 MainFrm.h 和 .cpp 文件中的函数
x 在 CCStatsDlg 类 .h 和 .cpp 中实例化成员结构或想要从硬件获取的变量
x 在 CCStatsDlg 类的 OnOK () 函数中填充变量
x 在 CCStatsDlg .h 和 .cpp 文件中添加一个或多个函数,例如:
x 调用对话框:
希望这会有所帮助
to do what you want :
x associate a function to the OnClick event of your Settings menu item (using the tabs of its property windows for example) -> this will generate automatically the function inside the MainFrm.h and .cpp files
x instantiate a member structure, or variables you want to get from your hardware inside your CCStatsDlg class .h and .cpp
x fill your variables inside the OnOK () function of your CCStatsDlg class
x add one or more functions inside your CCStatsDlg .h and .cpp files like :
x call your dialogbox with :
Hope this will help
所以你需要创建新的 CDialog 派生窗口然后显示它。
将此代码放入点击事件中:
您可以在此处和此处
so you need create new CDialog derived window and then show it.
Put this code to on click event:
Some sample you can find here and here