MFC中IPADDRESS控件的使用
更新时间:2024-04-27 06:54:01 阅读量: 综合文库 文档下载
void CMyDlg::OnIPAddress() {
// 此段代码:独立的获取本机IP地址和计算机名 WORD wVersionRequested; WSADATA wsaData; char name[255]; CString ip;
PHOSTENT hostinfo;
wVersionRequested = MAKEWORD(2, 0);
if(gethostname(name, sizeof(name)) == 0) {
if((hostinfo = gethostbyname(name)) != NULL) {
ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list); }
if (WSAStartup(wVersionRequested, &wsaData) == 0) {
}
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(\ *(pIP+2), *(pIP+1), MessageBox(strIP);*/ /*
// 下面代码实现:把IP Address控件里的值转化为 CString格式 BYTE f0, f1, f2, f3;
m_IP.GetAddress(f0, f1, f2, f3); CString m_addr;
m_addr.Format(\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];
*pIP);
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);
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(IPByte[0],IPByte[1],IPByte[2],IPByte[3]); 获得IP Address控件中的4部分数字
//------------------把IP地址转化为字符 CString strI;=\
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;
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(\ 使用VC提供的Format函数,省去了整数转化为字符串的操作。
三、VC中IP地址控件的赋值与取值
CIPAddressCtrl m_ipTarget; // 假设你的IP控件为m_ipTarget CString m_szIPAddress;
// 取值到m_szIPAddress
BYTE nField0 = 0, nField1 = 0, nField2 = 0, nField3 = 0; if(!m_ipTarget.IsBlank()) {
m_ipTarget.GetAddress(nField0, nField1, nField2, nField3); }
m_szIPAddress.Format(_T(\
// 赋值给m_ipTarget
int nField0 = 0, nField1 = 0, nField2 = 0, nField3 = 0;
if(_stscanf(m_szIPAddress, _T(\{
m_ipTarget.SetAddress(nField0, nField1, nField2, nField3); }
同样也可以这样:
// 取值到m_szIPAddress BYTE b[4];
((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS))->GetAddress(b[0],b[1],b[2],b[3]); m_szIPAddress.Format(\ // 赋值给m_ipTarget //地址初始化
char name[20];
gethostname(name,20);
hostent * host=gethostbyname(name); struct in_addr inAddr;
memmove(&inAddr,host->h_addr_list[0],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(\或者
m_Ip.GetAddress(&dwIP);
strIP.Format(_T(\
如果你想去IP可以直接用: m_Ip.GetWindowText(strIP);
VC++ MFC编程中 IP控件的使用
IP地址在计算机中表示是32位二进制,通过GetAddress()来获得IP时,得到的是一个由二进制所转化的长整型IP地址,比如IP地址202.201.112.98的长整型表示就是:3402199138,同样也可以使用http://3402199138/来访问,所以在进行套接字绑定时要进行相应的转换。
//将CString 型IP地址在IPAddressCtrl中显示 CString strIP= \ DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP; m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3)); //将IPAddressCtrl中的IP地址获得并转换成CString型 unsigned char *pIP; CString strIP; DWORD dwIP;
m_ipAddr.GetAddress(dwIP); pIP = (unsigned char*)&dwIP;
strIP.Format( \ *(pIP+2), *(pIP+1), *pIP);
正在阅读:
MFC中IPADDRESS控件的使用04-27
幼儿园中班语言《家在哪里》试讲稿02-23
抚顺高岳开关有限公司JWG1-126型接地开关维护检修手册12-16
法语音标发音方法 - 图文03-05
浅谈电力营销业扩流程的精细化管理04-13
西安建筑科技大学材料力学考题(答案)12-03
康明斯发动机电控系统及其故障诊断初探07-23
总经理年会致辞02-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 控件
- IPADDRESS
- 使用
- MFC