如果你编写Internet应用程序, 你需要校验用户进入的IP地址和确认它是正确的.
首先,我们需要在对话框的头文件里加入下面的函数声明:
#include
void WINAPI DDX_IPAddress(CDataExchange* pDX, int nIDC, UINT & value);
实现数据交换,你需要在你的对话框DoDataExchange函数里调用DDX_IPAddress函数。
现在,在对话框的实现文件中加入下列代码,不要忘记在项目设置中包含ws2_32.lib.
// DDX routine fo IP address translation
void WINAPI DDX_IPAddress(CDataExchange* pDX, int nIDC, UINT & value)
{
// from dialog to class
if( pDX->m_bSaveAndValidate)
{
CString Val;
BOOL bValid = true;
pDX->m_pDlgWnd->GetDlgItem(nIDC)->GetWindowText(Val);
for( int i = 0; i < Val.GetLength(); i++)
{
// lets check if all entered char in entered
// IP address are digits
if(Val[i] == .)
continue;
if(isdigit(Val[i]) == 0)
{
bValid = false;
break;
}
}
if(bValid)
{
value = inet_addr(Val);
if(value == INADDR_NONE)
{
pDX->m_pDlgWnd->MessageBox("The entered IP address is invalid.");