VC MFC C++ IPControl CIPAddressCtrl IP输入控件使用

直接通过控件ID获取控件指针来操作控件(不用声明变量)
CIPAddressCtrl* mIPAddressCtrl_ServerIP = ((CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS_ServerIP));


让控件无效(变灰不可操作)
GetDlgItem(IDC_IPADDRESS_ServerIP)->EnableWindow(FALSE);

让控件有效
GetDlgItem(IDC_IPADDRESS_ServerIP)->EnableWindow(TRUE);

清除IP地址控件中的内容
mIPAddressCtrl_ServerIP->ClearAddress();

查询是否有输入(如果IP地址控件的所有域均为空,返回非0值;否则返回0)
BOOL IsEmpty = mIPAddressCtrl_ServerIP->IsBlank();

设置IP地址(三种方式,五种类型)
1、直接使用IP地址结构体

struct in_addr addrIP;
mIPAddressCtrl_ServerIP->SetAddress(addrIP.S_un.S_un_b.s_b1, addrIP.S_un.S_un_b.s_b2, addrIP.S_un.S_un_b.s_b3, addrIP.S_un.S_un_b.s_b4);
2、使用整形变量   
DWORD dwAddress = 0x7F000001;//127.0.0.1
mIPAddressCtrl_ServerIP->SetAddress(dwAddress);// 参数为主机字节顺序
3、直接填数字   
mIPAddressCtrl_ServerIP->SetAddress(192, 168, 1, 10);
4、CString类型
CString strIP = "192.168.1.184";
DWORD dwAddress = ntohl(inet_addr(strIP));
mIPAddressCtrl_ServerIP->SetAddress(dwAddress);
5、Byte类型
BYTE   ips[4] = {192,168,1,12};
mIPAddressCtrl_ServerIP->SetAddress(ips[0], ips[1], ips[2], ips[3]);

获取IP地址(三种方式,5种类型)
1、使用IP地址结构体

struct in_addr addrIP;
mIPAddressCtrl_ServerIP->GetAddress(addrIP.S_un.S_un_b.s_b1, addrIP.S_un.S_un_b.s_b2, addrIP.S_un.S_un_b.s_b3, addrIP.S_un.S_un_b.s_b4);
2、使用整形变量
DWORD dwAddress;
mIPAddressCtrl_ServerIP->GetAddress(dwAddress);//参数为主机字节顺序
3、Byte类型
BYTE   ips[4];
mIPAddressCtrl_ServerIP->GetAddress(ips[0], ips[1], ips[2], ips[3]);
4、CString类型1
BYTE   ips[4];
CString IPstr;
mIPAddressCtrl_ServerIP->GetAddress(ips[0], ips[1], ips[2], ips[3]);
IPstr.Format("%d.%d.%d.%d",ips[0], ips[1], ips[2], ips[3]);
5、CString类型2
CString strIP;
mIPAddressCtrl_ServerIP->GetWindowText(strIP);

 

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

设置光标焦点
mIPAddressCtrl_ServerIP->SetFieldFocus(0);
把焦点设置在指定的域中。nField取值为0~3,如果大于3,则焦点设置到第一个空域中,若所有域均非空,则 焦点设置在第一个域中。


 

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页