MFC中IPADDRESS控件的使用.doc_第1页
MFC中IPADDRESS控件的使用.doc_第2页
MFC中IPADDRESS控件的使用.doc_第3页
MFC中IPADDRESS控件的使用.doc_第4页
MFC中IPADDRESS控件的使用.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

void CMyDlg:OnIPAddress() / 此段代码:独立的获取本机IP地址和计算机名WORD wVersionRequested; WSADATA wsaData; char name255; 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 IPByte4;m_IP.GetAddress(IPByte0, IPByte1, IPByte2, IPByte3);CString strIP = ;char temp110, temp210, temp310, temp410;itoa(IPByte0, temp1, 10);itoa(IPByte1, temp2, 10);itoa(IPByte2, temp3, 10);itoa(IPByte3, 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);MFC中怎样用 IP Address Control?CIPAddressCtrl m_IP;CString temp;在IP Address Control对应的函数中获取IP地址: m_IP.UpdateData();m_IP.GetWindowTextW(temp);获得的IP地址存入temp。二、VC下怎样使用IP Address Control 控件问题:怎样从IP Address控件获得IP地址,并交给程序(如socket中的connect函数)处理。 方法一: /m_Ip为IP Address控件的变量名 m_Ip.GetAddress(IPByte0,IPByte1,IPByte2,IPByte3); 获得IP Address控件中的4部分数字 /-把IP地址转化为字符 CString strI;=; char temp110,temp210,temp310,temp410; itoa(IPByte0,temp1,10); itoa(IPByte1,temp2,10); itoa(IPByte2,temp3,10); itoa(IPByte3,temp4,10); strIp+=temp1; strIp+=.; strIp+=temp2; strIp+=.; strIp+=temp3; strIp+=.; strIp+=temp4;itoa函数介绍 定义在stdlib中的 , _CRTIMP char * _cdecl _itoa(int, char *, int); 我看的源代码中是这么调用的: _itoa(i,str3,10); 功能:把整形转换为字符类型, 含义: i:需要转换的整形 str3:字符串缓冲区 10:十进制方式方法二(简单): m_IP.GetAddress(f0,f1,f2,f3);/m_IP是ip控件的控制变量 m_addr.Format(%d%s%d%s%d%s%d,f0,.,f1,.,f2,.,f3); 使用VC提供的Format函数,省去了整数转化为字符串的操作。 三、VC中IP地址控件的赋值与取值CIPAddressCtrl m_ipTarget; / 假设你的IP控件为m_ipTarget CString m_szIPAddress;/ 取值到m_szIPAddressBYTE nField0 = 0, nField1 = 0, nField2 = 0, nField3 = 0;if(!m_ipTarget.IsBlank() m_ipTarget.GetAddress(nField0, nField1, nField2, nField3);m_szIPAddress.Format(_T(%d.%d.%d.%d), nField0, nField1, nField2, nField3);/ 赋值给m_ipTargetint nField0 = 0, nField1 = 0, nField2 = 0, nField3 = 0;if(_stscanf(m_szIPAddress, _T(%d.%d.%d.%d), &nField0, &nField1, &nField2, &nField3) = 4) m_ipTarget.SetAddress(nField0, nField1, nField2, nField3);同样也可以这样:/ 取值到m_szIPAddress BYTE b4; (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS)-GetAddress(b0,b1,b2,b3); m_szIPAddress.Format(%d.%d.%d.%d,b0,b1,b2,b3);/ 赋值给m_ipTarget/地址初始化 char name20; gethostname(name,20); hostent * host=gethostbyname(name); struct in_addr inAddr; memmove(&inAddr,host-h_addr_list0,4); m_sIP=inet_ntoa(inAddr); (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS)-SetAddress(inAddr.S_un.S_un_b.s_b1,inAddr.S_un.S_un_b.s_b2,inAddr.S_un.S_un_b.s_b3,inAddr.S_un.S_un_b.s_b4); MFC中IP地址控件中获取到IP地址转换字符串MFC中,用CIPAddress类的GetAddress()得到BYTE或DWORD的IP地址,转换成字符串的方法:CIpAddressCtrl的GetAddress()int GetAddress( BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3);int GetAddress( DWORD& dwAddress);CString strIP;BYTE IP0,IP1,IP2,IP3;DWORD dwIP;m_Ip.GetAddress(&IP0,&IP1,&IP2,&IP3);strIP.Format(_T(%d.%d.%d.%d),IP0,IP1,IP2,IP3);或者m_Ip.GetAddress(&dwIP);strIP.Format(_T(%d.%d.%d.%d),(BYTE)dwIP24,(BYTE)dwIP16,(BYTE)dwIP8,(BYTE)dwIP);如果你想去IP可以直接用:m_Ip.GetWindowText(strIP);VC+ MFC编程中 IP控件的使用 IP地址在计算机中表示是32位二进制,通过GetAddress()来获得IP时,得到的是一个由二进制所转化的长整型IP地址,比如IP地址8的长整型表示就是:3402199138,同样也可以使用http:/3402199138/来访问,所以在进行套接字绑定时要进行相应的转换。 /将CString 型IP地址在IPAddressCtrl中显示 CString strIP= 0 ; DWORD dwIP; dwIP = inet_addr(strIP); unsigned char *pIP = (unsigned char*)&dwIP; m_ipAddr.SetAddress(*pIP,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论