CNetAddressCtrl 类

CNetAddressCtrl 类表示网络地址控件,可使用此控件输入和验证 IPv4、IPv6 与命名的 DNS 地址的格式。

语法

class CNetAddressCtrl : public CEdit

成员

公共构造函数

名称 描述
CNetAddressCtrl::CNetAddressCtrl 构造 CNetAddressCtrl 对象。

公共方法

名称 描述
CNetAddressCtrl::Create 创建具有指定样式的网络地址控件,并将其附加到当前 CNetAddressCtrl 对象。
CNetAddressCtrl::CreateEx 创建具有指定扩展样式的网络地址控件,并将其附加到当前 CNetAddressCtrl 对象。
CNetAddressCtrl::DisplayErrorTip 当用户在当前网络地址控件中输入不受支持的网络地址时,显示错误气球状提示。
CNetAddressCtrl::GetAddress 检索与当前网络地址控件关联的网络地址的已验证和分析表示形式。
CNetAddressCtrl::GetAllowType 检索当前网络地址控件可以支持的网络地址类型。
CNetAddressCtrl::SetAllowType 设置当前网络地址控件可以支持的网络地址类型。

注解

网络地址控件验证用户输入的地址格式是否正确。 该控件实际上并没有连接到网络地址。 CNetAddressCtrl::SetAllowType 方法指定 CNetAddressCtrl::GetAddress 方法可以分析和验证的一个或多个地址类型。 地址可以采用 IPv4、IPv6 或服务器、网络、主机或广播消息目标的命名地址形式。 如果地址格式不正确,可以使用 CNetAddressCtrl::DisplayErrorTip 方法显示信息提示消息框,该框以图形方式指向网络地址控件的文本框并显示预定义的错误消息。

CNetAddressCtrl 类派生自 CEdit 类。 因此,网络地址控件提供对所有 Windows 编辑控件消息的访问。

下图描述了包含网络地址控件的对话框。 网络地址控件的文本框 (1) 包含无效网络地址。 如果网络地址无效,则会显示信息提示消息 (2)。

具有网络地址控制和信息提示的对话框。

示例

下面的代码示例是验证网络地址的对话框的一部分。 三个单选按钮的事件处理程序指定网络地址可以是三种地址类型之一。 用户在网络控件文本框中输入地址,然后按下一个按钮来验证该地址。 如果地址有效,则会显示成功消息;否则,将显示预定义的信息提示错误消息。

void CCNetAddressCtrl_s1Dlg::OnBnClickedRadio1()
{
   m_netAddr.SetAllowType(NET_STRING_IPV4_ADDRESS);
}

void CCNetAddressCtrl_s1Dlg::OnBnClickedRadio2()
{
   m_netAddr.SetAllowType(NET_STRING_IPV6_ADDRESS);
}

void CCNetAddressCtrl_s1Dlg::OnBnClickedRadio3()
{
   m_netAddr.SetAllowType(NET_STRING_NAMED_ADDRESS);
}

void CCNetAddressCtrl_s1Dlg::OnBnClickedButton1()
{
   m_na.pAddrInfo = &m_nai;
   HRESULT rslt = m_netAddr.GetAddress(&m_na);
   if (rslt != S_OK)
      m_netAddr.DisplayErrorTip();
   else
   {
      MessageBox(
          _T("Success!"), _T("Validation Results"));
   }

对话框头文件中的以下代码示例定义 CNetAddressCtrl::GetAddress 方法所需的 NC_ADDRESSNET_ADDRESS_INFO 变量。

NC_ADDRESS m_na;
NET_ADDRESS_INFO m_nai;

继承层次结构

CObject

CCmdTarget

CWnd

CEdit

CNetAddressCtrl

要求

标头: afxcmn.h

Windows Vista 及更高版本支持这个类。

这个类的附加要求在 Windows Vista 常见控件的生成需求中介绍。

CNetAddressCtrl::CNetAddressCtrl

构造 CNetAddressCtrl 对象。

CNetAddressCtrl();

备注

使用 CNetAddressCtrl::CreateCNetAddressCtrl::CreateEx 方法创建网络控件并将其附加到 CNetAddressCtrl 对象。

CNetAddressCtrl::Create

创建具有指定样式的网络地址控件,并将其附加到当前 CNetAddressCtrl 对象。

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

参数

dwStyle
[in] 要应用于控件的样式的按位组合。 有关详细信息,请参阅编辑样式

rect
[in] 对 RECT 结构的引用,该结构包含控件的位置和大小。

pParentWnd
[in] 指向 CWnd 对象(控件的父窗口)的非空指针。

nID
[in] 控件的 ID。

返回值

如果此方法成功,则返回 TRUE;否则返回 FALSE。

CNetAddressCtrl::CreateEx

创建具有指定扩展样式的网络地址控件,并将其附加到当前 CNetAddressCtrl 对象。

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

参数

dwExStyle
[in] 要应用于控件的扩展样式的按位组合 (OR)。 有关详细信息,请参阅 CreateWindowEx 函数的 dwExStyle 参数

dwStyle
[in] 要应用于控件的样式的按位组合 (OR)。 有关详细信息,请参阅编辑样式

rect
[in] 对 RECT 结构的引用,该结构包含控件的位置和大小。

pParentWnd
[in] 指向 CWnd 对象(控件的父窗口)的非空指针。

nID
[in] 控件的 ID。

返回值

如果此方法成功,则返回 TRUE;否则返回 FALSE。

CNetAddressCtrl::DisplayErrorTip

在与当前网络地址控件关联的气球状提示中显示错误消息。

HRESULT DisplayErrorTip();

返回值

如果方法成功,则为值 S_OK;否则为错误代码。

备注

使用 CNetAddressCtrl::SetAllowType 方法可指定当前网络地址控件可以支持的地址类型。 使用 CNetAddressCtrl::GetAddress 方法验证和分析用户输入的网络地址。 如果 CNetAddressCtrl::GetAddress 方法失败,则使用 CNetAddressCtrl::DisplayErrorTip 方法显示错误消息信息提示。

此消息调用 Windows SDK 中所述的 NetAddr_DisplayErrorTip 宏。 该宏发送 NCM_DISPLAYERRORTIP 消息。

CNetAddressCtrl::GetAddress

检索与当前网络地址控件关联的网络地址的已验证和分析表示形式。

HRESULT GetAddress(PNC_ADDRESS pAddress) const;

参数

pAddress
[in, out] 指向 NC_ADDRESS 结构的指针。 在调用 GetAddress 方法之前,将此结构的 pAddrInfo 成员设置为 NET_ADDRESS_INFO 结构的地址。

返回值

如果方法成功,则为值 S_OK;否则为 COM 错误代码。 有关可能的错误代码的详细信息,请参阅 NetAddr_GetAddress 宏的“返回值”部分。

备注

如果此方法成功,则 NET_ADDRESS_INFO 结构包含有关网络地址的其他信息。

使用 CNetAddressCtrl::SetAllowType 方法可指定当前网络地址控件可以支持的地址类型。 使用 CNetAddressCtrl::GetAddress 方法验证和分析用户输入的网络地址。 如果 CNetAddressCtrl::GetAddress 方法失败,则使用 CNetAddressCtrl::DisplayErrorTip 方法显示错误消息信息提示。

此方法调用 Windows SDK 中所述的 NetAddr_GetAddress 宏。 该宏发送 NCM_GETADDRESS 消息。

CNetAddressCtrl::GetAllowType

检索当前网络地址控件可以支持的网络地址类型。

DWORD GetAllowType() const;

返回值

指定网络地址控件可以支持的地址类型的按位组合 (OR)。 有关详细信息,请参阅 NET_STRING

备注

此消息调用 Windows SDK 中所述的 NetAddr_GetAllowType 宏。 该宏发送 NCM_GETALLOWTYPE 消息。

CNetAddressCtrl::SetAllowType

设置当前网络地址控件可以支持的网络地址类型。

HRESULT SetAllowType(DWORD dwAddrMask);

参数

dwAddrMask
[in] 指定网络地址控件可以支持的地址类型的按位组合 (OR)。 有关详细信息,请参阅 NET_STRING

返回值

如果方法成功,则为 S_OK;否则为 COM 错误代码。

备注

使用 CNetAddressCtrl::SetAllowType 方法可指定当前网络地址控件可以支持的地址类型。 使用 CNetAddressCtrl::GetAddress 方法验证和分析用户输入的网络地址。 如果 CNetAddressCtrl::GetAddress 方法失败,则使用 CNetAddressCtrl::DisplayErrorTip 方法显示错误消息信息提示。

此消息调用 Windows SDK 中所述的 NetAddr_SetAllowType 宏。 该宏发送 NCM_SETALLOWTYPE 消息。

另请参阅

CNetAddressCtrl 类
层次结构图
CEdit 类