VS2012类的构造函数传参
本帖最后由 mantishell 于 2016-7-12 08:25 编辑在使用mfc的单文档的菜单弹出的对话框时,有时候需要记录些信息,在编辑框内输入数据,点击确定后又变回了0,这时候怎么办呢?
例子:
一、建立工程名字叫Doc
在菜单栏里添加子菜单ID_VIEW_UPDATETIMER,并在CDocView类里添加OnViewUpdatetimer方法。
在DocView.h里添加
#define VIEW_DEFAULT_INTERVAL 250
#define VIEW_MIN_INTERVAL 10
#define VIEW_MAX_INTERVAL 30000
WORD m_wUpdateInterval;
DocView.cpp
1.在CDocView构造函数里添加初始话
CDocView::CDocView()
{
// TODO: 在此处添加构造代码
m_wUpdateInterval = VIEW_DEFAULT_INTERVAL;
}2、添加ID_VIEW_UPDATETIMER命令消息
void CDocView::OnViewUpdatetimer()
{
// TODO: 在此添加命令处理程序代码
CUpdateIntervalDlg dlg(m_wUpdateInterval);//传参,前一次打开对话框输入的数值
if (dlg.DoModal () == IDOK)
{
if (m_wUpdateInterval != (WORD) dlg.m_nInterval)
{
KillTimer (UPDATE_ITEMPANE_EVENT);
m_wUpdateInterval = (WORD) dlg.m_nInterval;//对话框上输入的数值
SetTimer (UPDATE_ITEMPANE_EVENT, m_wUpdateInterval, NULL);
}
}
}
UpdateIntervalDlg.cpp
3、关联IDC_INTERVAL变量int m_nInterval;重新构造函数
CUpdateIntervalDlg::CUpdateIntervalDlg (WORD wInterval, CWnd *pParent /*=NULL*/)
: CDialogEx (CUpdateIntervalDlg::IDD, pParent)
{
m_nInterval = wInterval;
if (m_nInterval < VIEW_MIN_INTERVAL)
m_nInterval = VIEW_MIN_INTERVAL;
else if (m_nInterval > VIEW_MAX_INTERVAL)
m_nInterval = VIEW_MAX_INTERVAL;
}
:loveliness::loveliness: stary666 发表于 2016-7-6 12:57
谢谢,记录一下学习内容,分享出来以供大家批评指正 :loveliness::loveliness:
页:
[1]