UpdateData()函数用法 mfc updatedata用法

UpdateData(True):表示写数据,将窗口控制变量写入内存(更新数据)-------使用OnOk时将自动调用UpdateData(True),

用以将窗口数据写入内存相应成员变量中

UpdateData(Flase):表示读数据,即显示窗口读取内存的数据以供实时显示------使用OnInitDialog中,MFC调用UpdateData

(False)将内存成员数据显示到对应的窗口中

比如:CDialog的成员函数OnInitDialog()

BOOL CDialog::OnInitDialog()
{
// execute dialog RT_DLGINIT resource
BOOL bDlgInit;
if (m_lpDialogInit != NULL)
bDlgInit =ExecuteDlgInit(m_lpDialogInit);
else
bDlgInit =ExecuteDlgInit(m_lpszTemplateName);

if (!bDlgInit)
{
TRACE(traceAppMsg, 0, "Warning:ExecuteDlgInit failed during dialog init.n");
EndDialog(-1);
return FALSE;
}

// transfer data into the dialog from membervariables
if(!UpdateData(FALSE))
{
TRACE(traceAppMsg, 0, "Warning:UpdateData failed during dialog init.n");
EndDialog(-1);
return FALSE;
}

// enable/disable help button automatically
CWnd* pHelpButton = GetDlgItem(ID_HELP);
if (pHelpButton != NULL)
pHelpButton->ShowWindow(AfxHelpEnabled()? SW_SHOW : SW_HIDE);

returnTRUE; // setfocus to first one
}

CDialog::OnOK()

voidCDialog::OnOK()
{
if (!UpdateData(TRUE))
{
TRACE(traceAppMsg, 0,"UpdateData failed during dialog termination.n");
// the UpdateData routine willset focus to correct item
return;
}
EndDialog(IDOK);
}

CWnd:: UpdateData(BOOL bSaveAndValidate) //UpdateData 函数的定义

BOOL CWnd::UpdateData(BOOL bSaveAndValidate)
{
ASSERT(::IsWindow(m_hWnd)); // calling UpdateDatabefore DoModal?

CDataExchange dx(this, bSaveAndValidate);

// prevent control notifications from beingdispatched during UpdateData
_AFX_THREAD_STATE* pThreadState =AfxGetThreadState();
HWND hWndOldLockout =pThreadState->m_hLockoutNotifyWindow;
ASSERT(hWndOldLockout !=m_hWnd); // must notrecurse
pThreadState->m_hLockoutNotifyWindow= m_hWnd;

BOOL bOK =FALSE;// assume failure
TRY
{
DoDataExchange(&dx);
bOK =TRUE;// it worked
}
CATCH(CUserException, e)
{
// validation failed - useralready alerted, fall through
ASSERT(!bOK);
// Note: DELETE_EXCEPTION_(e)not required
}
AND_CATCH_ALL(e)
{
// validation failed due to OOMor other resource failure
e->ReportError(MB_ICONEXCLAMATION,AFX_IDP_INTERNAL_FAILURE);
ASSERT(!bOK);
DELETE_EXCEPTION(e);
UpdateData()函数用法 mfc updatedata用法
}
END_CATCH_ALL

pThreadState->m_hLockoutNotifyWindow= hWndOldLockout;
return bOK;
}

所谓写数据,即是将外部数据写入到内存变量中(改变内存数据)

所谓读数据,显示窗口读取内存数据(不改变内存数据)

二者经常使用于如下情况:

在设置窗口数据默认值时,或将窗口数据作为控制参数传入到内存时,这时需要往内存写入数据,此时应首先调用UpdataData(TRUE)

写入之后,需要观察内存这个数据的变化,这时应该时刻读取内存数据,此时应调用UpdateData(false)

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/361516.html

更多阅读

excel公式函数详解:19 yearfrac函数用法介绍

excel公式函数详解:[19]yearfrac函数用法介绍——简介一个良好的规划对于生活品质和工作效率都极其重要,在实际生活中我们往往需要计算一年有几个项目,每个项目需要花费多长时间。不同的工作其所花的中心也应该不一样。在excel中有一个

MATLAB 各种 对数函数 用法以及实例 matlab 对数函数

MATLAB 各种 对数函数 用法以及实例——简介在MATLAB运算当中,我们常常需要求对数,在编写M文件的过程中,我们也需要表示对数,下面我就通过一些示例介绍一下如何在MATLAB中求对数。MATLAB 各种 对数函数 用法以及实例——工具/原料MATLA

Excel函数详解:166 FREQUENCY函数用法

Excel函数详解:[166]FREQUENCY函数用法——简介FREQUENCY函数,用于以垂直数组的形式返回多个数值在某个区域内出现的频率。该函数返回的是数组,所以必须以数组公式的形式进行输入。Excel函数详解:[166]FREQUENCY函数用法——工具/原料

matlab曲线拟合 函数 用法以及例子 如何用matlab拟合曲线

matlab曲线拟合 函数 用法以及例子——简介在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操

谈谈 Excel SUMIF函数用法 多条件求和 sumif日期条件求和

2010年9月1日 Surda 317 次 发表评论 阅读评论上篇文章跟大家分享了SUM函数非一般的用法,本文我们来品味SUMIF的魅力。SUMIF,根据指定条件对若干单元格求和。其函数原型:SUMIF(range,criteria,sum_range),参数:range 为用于条件判断的

声明:《UpdateData()函数用法 mfc updatedata用法》为网友薄荷蓝少年分享!如侵犯到您的合法权益请联系我们删除