MFC IP地址控件的用法

MFC IP地址控件的用法,第1张

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_IPSetAddress(255, 86, 255, 68); // 直接设置控件里显示的值

// 本段代码:已知IP Address控件里显示的值,转换为CString格式

/

// 下面代码实现:把IP Address控件里的值转化为 CString格式

unsigned char pIP;

CString strIP;

DWORD dwIP;

m_IPGetAddress(dwIP); // m_IP为IP Address控件对应的变量

pIP = (unsigned char)&dwIP;

strIPFormat("%u%u%u%u",(pIP+3), (pIP+2), (pIP+1), pIP);

MessageBox(strIP);/

/

// 下面代码实现:把IP Address控件里的值转化为 CString格式

BYTE f0, f1, f2, f3;

m_IPGetAddress(f0, f1, f2, f3);

CString m_addr;

m_addrFormat("%d%s%d%s%d%s%d", f0, "", f1, "", f2, "", f3);

MessageBox(m_addr);/

/

// 下面代码实现:把IP Address控件里的值转化为 CString格式

BYTE IPByte[4];

m_IPGetAddress(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_IPGetWindowText(strx);

MessageBox(strx);/

// 此段代码:用获取的IP地址值,显示到对话框里IP Address控件中

/ CString strIP;

GetDlgItemText(IDC_EDIT_IPAddress, strIP);

m_IPSetWindowText(strIP);/

m_IPSetWindowText(ip); // 把IP地址(CString类型)直接显示到IP Address控件中

UpdateData(FALSE);

}

inet_addr()返回一个无符号长整型数,其中以适当字节顺序存放Internet地址。如果传入的字符串不是一个合法的Internet地址,如“abcd”地址中任一项超过255,那么inet_addr()返回INADDR_NONE。在IP只有一部分时(即没有 ”“ 时),IP的字符串如果只由数字组成,inet_addr()不检查数字是否大于255。因此用这个函数,自己去找找看吧a

我认为是这样: dwIp=inet_addr(str);

用指针://Bhclass B{public: Fun(); };CB GetB(); //全局函数//BCPPCB g_B;CB GetB(){return }//Acpp#include "Bh" GetB()Fun(); //可以这样调用B中的成员函数Fun()

为什么都不愿意看看MSDN呢写的很清楚

CIPAddressCtrl::GetAddress

int GetAddress( BYTE& nField0, BYTE&

nField1, BYTE& nField2, BYTE&

nField3 );

int GetAddress( DWORD& dwAddress );

CIPAddressCtrl m_IP = (CIPAddressCtrl)GetDlgItem(IDC_IPADDRESS1);

BYTE a1,a2,a3,a4;  

m_IP->GetAddress(a1,a2,a3,a4); 

CString str;  

strFormat("%d%d%d%d",a1,a2,a3,a4);//这里的nf得到的值是IP值了  

//m_combo是组合框控件,也可以像第一行代码那样获取

m_combo->AddString(str);

以上就是关于MFC IP地址控件的用法全部的内容,包括:MFC IP地址控件的用法、怎样把CString 转成IP、MFC控件 ,我需要在另一个类的成员函数中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9275496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存