MFC中IP控件常规操作

31 篇文章 2 订阅
MFC中IP控件的使用
void CMFC_IPControlDlg::OnIPAddressCtrl()
{
	/*获取计算机名和本机IP地址*/
	WORD wVersionRequested;
	WSADATA wsaData;
	char name[255];//本机名 
	CString ip;//本机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();
	} 
	/*获取计算机名和本机IP地址*/

	//直接设置控件里显示的值
	m_IPAddress.SetAddress(192, 168, 1, 2);
	

	/*把IP Address控件里显示的值,转换为CString格式*/  
	//方法1
	unsigned char *pIP;
	CString strIP;
	DWORD dwIP;              
	m_IPAddress.GetAddress(dwIP); // m_IPAddress为IP Address控件对应的变量
	pIP = (unsigned  char*)&dwIP; 
	strIP.Format("%u.%u.%u.%u",*(pIP+3),   *(pIP+2),   *(pIP+1),   *pIP);
	MessageBox(strIP);
	 

	//方法2
	BYTE f0, f1, f2, f3;
	m_IPAddress.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);
	 

	//方法3
	BYTE IPByte[4];
	m_IPAddress.GetAddress(IPByte[0], IPByte[1], IPByte[2], IPByte[3]);
	CString strIP2 = "";
	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);
	strIP2 += temp1;
	strIP2 += ".";
	strIP2 += temp2;
	strIP2 += ".";
	strIP2 += temp3;
	strIP2 += ".";
	strIP2 += temp4; 
	MessageBox(strIP2); 
	m_IPAddress.SetAddress(atoi(temp1), atoi(temp2), atoi(temp3), atoi(temp4));//直接设置控件里显示的值
	 

	//方法4
	CString strx;
	m_IPAddress.GetWindowText(strx);
	MessageBox(strx);
	/*把IP Address控件里的值转化为 CString格式*/


	/*用获取的IP地址值,显示到IP Address控件中*/
	 CString strIP3;
	 GetDlgItemText(IDC_IPADDRESS1, strIP3);
	 m_IPAddress.SetWindowText(strIP3);// 把IP地址(CString类型)直接显示到IP Address控件中  
	 
	UpdateData(FALSE);
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随心漂流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值