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