对话数据验证函数
(1)DDV_MinMaxByte指定限制范围内的一个BYTE。
(2)DDV_MinMaxInt指定限制范围内的一个int。
(3)DDV_MinMaxUInt指定限制范围内的一个UNIT。
(4)DDV_MinMaxLong指定限制范围内的一个long。
(5)DDV_MinMaxDWord指定限制范围内的一个DWORD。
(6)DDV_MinMaxFloat指定限制范围内的一个float。
(7)DDV_MinMaxDouble指定限制范围内的一个double。
(8)DDV_MaxCharsCString字符串的长度不能超过指定的最大长度。
除了一个对话数据验证函数之外,所有函数都监视数数据,以确保由用户输入的落在指定的上下限之间。ddx_cbstring
如果输入到一个控件的落到了指定的限制之外,那么,该控件的验证函数将显示一个消息框,以通知用户出了问题。当消息框被关闭的时候,出问题的控件将具有一个焦点,提示用户重新输入数据。除非所有的数据验证函数都满足了,否则,用户不能够通过单击OK来关闭对话。
-----------------------------------------------------------------------------
DDX:Dialog Data Exchange
如果使用DDX机制,一般会在OnInitDialog消息处理函数或Dialog构造函数中,为对话
框对象的成员变量设置了初始。在对话框显示前,框架的DDX机制将成员变量的传
给对话框中的控件,当调用DoModal或Create函数,对话框即将显示时,这些也就显
示在相应的控件上。
CDialog类的成员函数OnInitDialog的默认实现中,调用CWnd类的UpdateData成员函数
来初始化对话框的控件。
当用户单击OK按钮或调用成员函数UpdateData(TRUE),相同的机制会将控件传给成员
变量。
DDV:Dialog Data Validation
DDV机制会根据用户指定的验证规则来验证数据
UpdateData函数创建一个CDataExchange对象,并调用CDialog类DoDataExchange 成员
函数的对话框重载函数:
BOOL CWnd::UpdateData(BOOL bSaveAndValidate)
{
ASSERT(::IsWindow(m_hWnd)); // calling UpdateData before DoModal?
CDataExchange dx(this, bSaveAndValidate);
// prevent control notifications from being dispatched during
UpdateData
_AFX_THREAD_STATE* pThreadState = AfxGetThreadState();
HWND hWndOldLockout = pThreadState->m_hLockoutNotifyWindow;
ASSERT(hWndOldLockout != m_hWnd); // must not recurse
pThreadState->m_hLockoutNotifyWindow = m_hWnd;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-31236-2.html
这位后生人不是这么骗的钱不是这么赚的脸可是这么丢的
在所不辞