CIPAddressCtrl(ip地址控件)使用学习只看楼主 收藏

为控件设置数据
m_addr.SetAddress(192,168,0,2);
从控件得到数据

int GetAddress(
    BYTE& nField0,
    BYTE& nField1,
    BYTE& nField2,
    BYTE& nField3
);
int GetAddress(
    DWORD& dwAddress
);

方法一就是使用第一个函数形式
BYTE b1,b2,b3,b4;
m_addr.GetAddress(b1,b2,b3,b4);

如果采用第二个重载函数,
int GetAddress(DWORD& dwAddress);

返回值:IP地址控件中非空域的数目。

参数: nField0 来自打包的IP地址的关于域0值的参考。  
nField1 来自打包的IP地址的关于域1值的参考。  
nField2 来自打包的IP地址的关于域2值的参考。  
nField3 来自打包的IP地址的关于域3值的参考。  
dwAddress 接收IP地址的DWORD值的地址的参考。请参阅说明,以了解如何填充dwAddress的表格。  

说明:
此成员函数实现Win32消息IPM_GETADDESS的功能,如同在联机文档“平台SDK”中描述的。
在上面第一个原型中,控件中从域0到域3的数,从左到右读取,分别放入四个参数中。在上面第二个原型中,dwAddress如下设置:
域 包含域值的位  
0   24到31  
1   16到23  
2   8到15  
3 0到7  

因此要想获取每个域的IP值,需将dwAddress中对应域值的位进行分离,具体方法如下

/*********************************************************
Function:     IPToStr
Desc:         change the IP address type from DWORD to CString
Input:         dwIP, DWORD;
Output:    
Return:         CString ip address;
**********************************************************/
CString IPToStr(DWORD dwIP)
{
     CString strIP = _T("");
     WORD add1,add2,add3,add4;

     add1=(WORD)(dwIP&255);
     add2=(WORD)((dwIP>>8)&255);
     add3=(WORD)((dwIP>>16)&255);
     add4=(WORD)((dwIP>>24)&255);
     strIP.Format("%d.%d.%d.%d",add4,add3,add2,add1);
     return strIP;
}





UpdateData(TRUE);
CString strMainIp = "";
unsigned char *pIP1;   
DWORD dwIP1;   
m_ctrMainIp.GetAddress(dwIP1);   
pIP1 = (unsigned char*)&dwIP1;   
strMainIp.Format("%u.%u.%u.%u",*(pIP1+3), *(pIP1+2), *(pIP1+1), *pIP1);

CIPAddressCtrl类的使用(IP地址与CString的互相转化)
2008-09-23 16:22
//将CString    型IP地址在IPAddressCtrl中显示  
CString    strIP="192.168.0.10";  
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("%u.%u.%u.%u",*(pIP+3),    *(pIP+2),    *(pIP+1),    *pIP);


CIPAddressCtrl的用法

CIPAddressCtrl的用法
CIPAddressCtrl的值转换成CString,CString转换成CIPAddressCtrl
CString strIP="192.168.1.184";
m_IPAddr.SetWindowText(strIP);
CString strIP;
m_IPAddr.GetWindowText(strIP);

CString strIP="192.168.1.184";
DWORD dwAddress= ntohl( inet_addr(strIP));
m_IPAddr.SetAddress(dwAddress);

为控件设置数据
m_addr.SetAddress(192,168,0,2);
从控件得到数据
BYTE b1,b2,b3,b4;
m_addr.GetAddress(b1,b2,b3,b4);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值