MFC CIPAddressCtrl控件的使用

利用MFC进行网络通信离不开IP控件的操作,本例程基于Visual C++ 2015平台构建IP控件的使用例程

1、利用MFC建立对话框程序

2、在对话框界面上加载IP控件、编辑框和按键等如下图所示

3、利用向导添加控件的变量和按键的响应函数

添加完之后再InternetDlg.h文件中增加以下几个变量和函数

    CIPAddressCtrl m_ip; //IP控件的变量(类别Control类型)
    CString m_ipport;  //端口控件的变量(类别Value类型)
    CEdit m_displayip; //下方编辑框的控件变量(类别Control类型)
    afx_msg void OnShowIpAndPort(); //“获取”按键的响应函数
    afx_msg void OnClearIPAndPort(); //“清除”按键的响应函数

4、InternetDlg.cpp文件中添加程序

void CInternetDlg::OnShowIpAndPort()
{
    BYTE valueip[4];
    CString stringip;

    UpdateData(TRUE);
    if (m_ip.IsBlank()) //判断IP控件是否有写入
    {
        MessageBox(_T("请输出IP地址"),_T("提示"),MB_OK);
    }
    else
    {
        m_ip.GetAddress(valueip[0], valueip[1], valueip[2], valueip[3]); //获取IP控件的IP地址
        stringip.Format(_T("%d.%d.%d.%d"), valueip[0], valueip[1], valueip[2], valueip[3]); //把IP地址转换成CString类型
        m_displayip.SetWindowTextW(stringip+":"+ m_ipport); //输出到下方的对话框上
        m_ip.SetFocus();
    }
}
void CInternetDlg::OnClearIPAndPort() //把IP控件和编辑框的变量清除掉
{
    UpdateData(TRUE);

    if (m_ip.IsBlank())
    {
        MessageBox(_T("IP地址为空"), _T("提示"), MB_OK);
    }
    else
    {
        m_ip.ClearAddress();
    }
    GetDlgItem(IDC_PORT)->SetWindowTextW(_T("")); //获取端口对话框的句柄并清除
    GetDlgItem(IDC_IPPORT)->SetWindowTextW(_T("")); //获取下方编辑框的句柄并清除
}

5、运行

猜你喜欢

转载自blog.csdn.net/qq_34911636/article/details/87369351