利用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、运行