CIPAddressCtrl控件的用法

1.通过Create函数手动创建一个IP控件. 
开始时我在OnInitDialog()函数中这样写的: 
CIPAddressCtrl IPAddress; 
UINT nID=101; 
IPAddress.Create(WS_CHILD |WS_VISIBLE ,CRect(20,20,300,43),this,nID); 
但运行之后看不到有IP控件出来,后来才发现原来我的IPAddress是一个局部变量,当OnInitDialog()函数返回时,这个变量就撤销了. 
所以不会有控件出来!! 
只要把CIPAddressCtrl IPAddress;放到头文件中定义为成员变量就OK了!

如果上面的Create函数的第一个参数没有|WS_VISIBLE;我们可以Create函数后加这一句:IPAddress.ShowWindow(SW_SHOW); 
感觉上Create函数在每一个控件里都有,创建的方法也是大同小异了吧!

2.下面的是我在基于一个对话框的工程中添加一个IP控件中所写的: 
先获得控件的指针: 
CIPAddressCtrl * pIP=(CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS);

void ClearAddress( ); 
这个函数将IP控件里的内容清空. 
BOOL IsBlank( ) const; 
这个函数是当IP控件里一个数字都没有才返回真的,全为0都返回假,0也是数字!调用ClearAddress( )后刚好可以使IsBlank()反回真. 
测试代码如下: 
pIP->ClearAddress(); 
if(pIP->IsBlank()) 

     MessageBox("IP全为空"); 
}

int GetAddress(BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3); 
int GetAddress(DWORD& dwAddress); 
当控件内容为空时,即没有数字,连0也没有,返回0,0,0,0.和控件全为0的情况一样! 
获得IP地址:(两种方法,选其一)

BYTE nf1,nf2,nf3,nf4; 
pIP->GetAddress(nf1,nf2,nf3,nf4); 
CString str; 
str.Format("%d.%d.%d.%d",nf1,nf2,nf3,nf4);//这里的nf得到的值是IP值了. 
MessageBox(str);

/* 
DWORD dw; 
pIP->GetAddress(dw); 
CString str; 
WORD hiWord=HIWORD(dw); 
WORD loWord=LOWORD(dw); 
BYTE nf1=HIBYTE(hiWord); 
BYTE nf2=LOBYTE(hiWord); 
BYTE nf3=HIBYTE(loWord); 
BYTE nf4=LOBYTE(loWord); 
str.Format("%d.%d.%d.%d",nf1,nf2,nf3,nf4); 
MessageBox(str); 
*/

void SetAddress(BYTE nField0, BYTE nField1, BYTE nField2, BYTE nField3); 
void SetAddress(DWORD dwAddress); 
设置IP地址:(两种方法,选其一)

        pIP->SetAddress(127,0,0,1);

pIP->SetAddress((DWORD)0x7F000001);//这两行的效果都是一样的!

void SetFieldRange(int nField, BYTE nLower, BYTE nUpper); 
设置每一个域的范围:(nField是0到3的值,nLower和nUpper的范围都是0到255.可以超出范围,但控件也还是默认设置回0到255的!

pIP->SetFieldRange(0,5,127);//设置每一个域的范围,第一个参数是域的下标,第二和第三个是范围. 
pIP->SetFieldRange(1,5,127);//当输入比5少时,如0,当失去输入焦点时,它会重置为5. 
pIP->SetFieldRange(2,5,127);//当输入比127大时,如128,它会自动变回127 
pIP->SetFieldRange(3,5,127);

void SetFieldFocus(WORD nField); 
nField的值为0到3;表示域的下标!该函数是使输入焦点落在四个域的指定域上; 
这个函数要在消息响应时才能体现出来! 
测试代码: 
void CTestDlg::OnButton2() 

// TODO: Add your control notification handler code here 
CIPAddressCtrl * pIP=(CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS); 
pIP->SetFieldFocus(2); 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值