CIPAddressCtrl控制項的用法

2021-06-15 03:30:15 字數 2031 閱讀 1179

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()) 

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); 

*/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() 

CIPAddressCtrl控制項類

win32提供了乙個ip位址控制項,mfc封裝成cipaddressctrl類管理這個控制項。class cipaddressctrl public cwnd 這是從mfc原始碼中摘出的cipaddressctrl類的宣告。1 bool isblank 當控制項四個輸入域都為空的時候,函式返回tru...

IP位址控制項CIPAddressCtrl類的使用

在對話方塊中放入此控制項後,可以為控制項定義乙個 cipaddressctrl類 的變數對它進行控制。cipaddressctrl類 的主要成員函式有 void clearaddress 清除ip位址控制項中的內容。bool isblank 如果ip位址控制項的所有域均為空,返回非0值 否則返回0。...

IP位址控制項CIPAddressCtrl類的使用

在vc 中,如果想要輸入ip位址可使用ip位址控制項,該控制項是乙個與編輯控制項類似的控制項,可用於輸入ip位址。在對話方塊中放入此控制項後,可以為控制項定義乙個 cipaddressctrl類 的變數對它進行控制。cipaddressctrl類 的主要成員函式有 void clearaddress...