MFC IP地址控件的用法
在MFC中我想用CString类的字符串里保存了IP地址,然后用显示在IP地址控件上面,具体如何做,请各位高手解答。我用了SetDlgItemText和SetWindow...
在MFC中我想用CString类的字符串里保存了IP地址,然后用显示在IP地址控件上面,具体如何做,请各位高手解答。我用了SetDlgItemText和SetWindowText都不行
展开
5个回答
展开全部
void CMyDlg::OnIPAddress()
{
// 此段代码:独立的获取本机IP地址和计算机名
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD(2, 0);
if (WSAStartup(wVersionRequested, &wsaData) == 0)
{
if(gethostname(name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
// AfxMessageBox(name);//name里是本机名
// AfxMessageBox(ip); //ip中是本机IP
m_IPAddress = ip; // m_IPAddress是IP控件对应的变量,ip是Edit控件对应的变量
// m_IP.SetAddress(255, 86, 255, 68); // 直接设置控件里显示的值
// 本段代码:已知IP Address控件里显示的值,转换为CString格式
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_IP.GetAddress(dwIP); // m_IP为IP Address控件对应的变量
pIP = (unsigned char*)&dwIP;
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
MessageBox(strIP);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
BYTE f0, f1, f2, f3;
m_IP.GetAddress(f0, f1, f2, f3);
CString m_addr;
m_addr.Format("%d%s%d%s%d%s%d", f0, ".", f1, ".", f2, ".", f3);
MessageBox(m_addr);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
BYTE IPByte[4];
m_IP.GetAddress(IPByte[0], IPByte[1], IPByte[2], IPByte[3]);
CString strIP = "";
char temp1[10], temp2[10], temp3[10], temp4[10];
itoa(IPByte[0], temp1, 10);
itoa(IPByte[1], temp2, 10);
itoa(IPByte[2], temp3, 10);
itoa(IPByte[3], temp4, 10);
strIP += temp1;
strIP += ".";
strIP += temp2;
strIP += ".";
strIP += temp3;
strIP += ".";
strIP += temp4;
MessageBox(strIP);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
CString strx;
m_IP.GetWindowText(strx);
MessageBox(strx);*/
// 此段代码:用获取的IP地址值,显示到对话框里IP Address控件中
/* CString strIP;
GetDlgItemText(IDC_EDIT_IPAddress, strIP);
m_IP.SetWindowText(strIP);*/
m_IP.SetWindowText(ip); // 把IP地址(CString类型)直接显示到IP Address控件中
UpdateData(FALSE);
}
{
// 此段代码:独立的获取本机IP地址和计算机名
WORD wVersionRequested;
WSADATA wsaData;
char name[255];
CString ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD(2, 0);
if (WSAStartup(wVersionRequested, &wsaData) == 0)
{
if(gethostname(name, sizeof(name)) == 0)
{
if((hostinfo = gethostbyname(name)) != NULL)
{
ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);
}
}
WSACleanup( );
}
// AfxMessageBox(name);//name里是本机名
// AfxMessageBox(ip); //ip中是本机IP
m_IPAddress = ip; // m_IPAddress是IP控件对应的变量,ip是Edit控件对应的变量
// m_IP.SetAddress(255, 86, 255, 68); // 直接设置控件里显示的值
// 本段代码:已知IP Address控件里显示的值,转换为CString格式
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_IP.GetAddress(dwIP); // m_IP为IP Address控件对应的变量
pIP = (unsigned char*)&dwIP;
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
MessageBox(strIP);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
BYTE f0, f1, f2, f3;
m_IP.GetAddress(f0, f1, f2, f3);
CString m_addr;
m_addr.Format("%d%s%d%s%d%s%d", f0, ".", f1, ".", f2, ".", f3);
MessageBox(m_addr);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
BYTE IPByte[4];
m_IP.GetAddress(IPByte[0], IPByte[1], IPByte[2], IPByte[3]);
CString strIP = "";
char temp1[10], temp2[10], temp3[10], temp4[10];
itoa(IPByte[0], temp1, 10);
itoa(IPByte[1], temp2, 10);
itoa(IPByte[2], temp3, 10);
itoa(IPByte[3], temp4, 10);
strIP += temp1;
strIP += ".";
strIP += temp2;
strIP += ".";
strIP += temp3;
strIP += ".";
strIP += temp4;
MessageBox(strIP);*/
/*
// 下面代码实现:把IP Address控件里的值转化为 CString格式
CString strx;
m_IP.GetWindowText(strx);
MessageBox(strx);*/
// 此段代码:用获取的IP地址值,显示到对话框里IP Address控件中
/* CString strIP;
GetDlgItemText(IDC_EDIT_IPAddress, strIP);
m_IP.SetWindowText(strIP);*/
m_IP.SetWindowText(ip); // 把IP地址(CString类型)直接显示到IP Address控件中
UpdateData(FALSE);
}
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
展开全部
DWORD dwIP;
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
具体你看SDK吧。
addrTO.sin_addr.S_un.S_addr=htonl(dwIP);
这里需要一些特别的转换
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS1))->GetAddress(dwIP);
具体你看SDK吧。
addrTO.sin_addr.S_un.S_addr=htonl(dwIP);
这里需要一些特别的转换
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BYTE f0,f1,f2,f3;//声明
获得用GetAddress(f0,f1,f2,f3);
设置用SGetAddress(f0,f1,f2,f3);
获得用GetAddress(f0,f1,f2,f3);
设置用SGetAddress(f0,f1,f2,f3);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SetDlgItemText(IDC_IPADDRESS1,_T("127.0.0.1"));
楼主可以试试。。。注意IP地址的格式,要如上转换
楼主可以试试。。。注意IP地址的格式,要如上转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给出你赋值的代码呀!
提问注意技巧,不要浪费大家时间。
提问注意技巧,不要浪费大家时间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |