CIPAddressCtrl控制項的用法

2021-06-17 20:50:47 字數 1994 閱讀 4392

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...