DWORD类型就是unsigned long 类型,CIPAddressCtrl获取ip地址的方法有两种
(1)
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);
(2)
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);
同时设置CIPAddress的方法也有两种:
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);
}