C++/MFC修行之路(8)MFC中IPADDRESS控件的使用

来源:互联网 发布:https协议端口 编辑:程序博客网 时间:2024/06/02 20:42

MFC中有一种专门用来输入IP地址的控件,它的具体样子就像这样:
这里写图片描述
他可以控制用户输入的数字的范围和种类.
具体的实现代码:

void CMyDlg::OnIPAddress()   02.{  03.    // 此段代码:独立的获取本机IP地址和计算机名  04.    WORD wVersionRequested;   05.    WSADATA wsaData;   06.    char name[255];   07.    CString ip;   08.    PHOSTENT hostinfo;   09.    wVersionRequested = MAKEWORD(2, 0);   10.      11.    if (WSAStartup(wVersionRequested, &wsaData) == 0)  12.    {   13.    14.       if(gethostname(name, sizeof(name)) == 0)   15.       {   16.        if((hostinfo = gethostbyname(name)) != NULL)   17.        {   18.         ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);   19.        }   20.       }     21.       WSACleanup( );   22.    }      23.      24.    // AfxMessageBox(name);//name里是本机名   25.    // AfxMessageBox(ip);    //ip中是本机IP   26.    m_IPAddress = ip; // m_IPAddress是IP控件对应的变量,ip是Edit控件对应的变量  27.    // m_IP.SetAddress(255, 86, 255, 68); // 直接设置控件里显示的值  28.    // 本段代码:已知IP Address控件里显示的值,转换为CString格式  29.    /* 30.    // 下面代码实现:把IP Address控件里的值转化为 CString格式 31.    unsigned char *pIP;    32.    CString strIP;    33.    DWORD dwIP;    34.    m_IP.GetAddress(dwIP); // m_IP为IP Address控件对应的变量    35.    pIP = (unsigned   char*)&dwIP;    36.    strIP.Format("%u.%u.%u.%u",*(pIP+3),   *(pIP+2),   *(pIP+1),   *pIP); 37.    MessageBox(strIP);*/  38.    /*  39.    // 下面代码实现:把IP Address控件里的值转化为 CString格式 40.    BYTE f0, f1, f2, f3; 41.    m_IP.GetAddress(f0, f1, f2, f3); 42.    CString m_addr; 43.    m_addr.Format("%d%s%d%s%d%s%d", f0, ".", f1, ".", f2, ".", f3); 44.    MessageBox(m_addr);*/  45.    /* 46.    // 下面代码实现:把IP Address控件里的值转化为 CString格式 47.    BYTE IPByte[4]; 48.    m_IP.GetAddress(IPByte[0], IPByte[1], IPByte[2], IPByte[3]); 49.    CString strIP = ""; 50.    char temp1[10], temp2[10], temp3[10], temp4[10]; 51.    itoa(IPByte[0], temp1, 10); 52.    itoa(IPByte[1], temp2, 10); 53.    itoa(IPByte[2], temp3, 10); 54.    itoa(IPByte[3], temp4, 10); 55.    strIP += temp1; 56.    strIP += "."; 57.    strIP += temp2; 58.    strIP += "."; 59.    strIP += temp3; 60.    strIP += "."; 61.    strIP += temp4; 62.    MessageBox(strIP);*/  63.    /* 64.    // 下面代码实现:把IP Address控件里的值转化为 CString格式 65.    CString strx; 66.    m_IP.GetWindowText(strx); 67.    MessageBox(strx);*/  68.    // 此段代码:用获取的IP地址值,显示到对话框里IP Address控件中  69.    /* CString strIP; 70.    GetDlgItemText(IDC_EDIT_IPAddress, strIP); 71.    m_IP.SetWindowText(strIP);*/  72.    m_IP.SetWindowText(ip); // 把IP地址(CString类型)直接显示到IP Address控件中  73.      74.    UpdateData(FALSE);  75.}  
0 0