IP Address控件问题

来源:互联网  时间:2016/7/8 19:37:45

关于网友提出的“ IP Address控件问题”问题疑问,本网通过在网上对“ IP Address控件问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: IP Address控件问题
描述:

为了让用户输入一个合法的IP地址,我在程序中使用了CIPAddressCtrl,也就是IP地址空间。可是无法将输入的IP转换成相应的字符串。代码如下
unsigned char *pIP; 
         CString strIP; 
DWORD dwIP; 
dlg.m_IPText.GetAddress(dwIP); 
pIP = (unsigned char*)&dwIP; 
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
奇怪的是我改变输入的IP地址 用AfxMessageBox()输出的字符串strIP一直不变。哪位高手能解释下,或给出这个控件的详细使用方法。
说明下我用的是VC6.0中的那个IP地址空间。


解决方案1:

1. 楼主的用法不对。
dlg.m_IPText.GetAddress(dwIP);不是在
CSetupDlg dlg;//得到IP地址的对话框 
if(dlg.DoModal()==IDOK)
这两行的下面,而应该是在CSetupDlg中。当你DoModal()返回之后,你的m_IPText控件已经销毁,你就无法再用这个控件去获取其中的文本了。另外,楼主需要说明m_IPText是一个啥玩意儿,要不,大伙没办法帮助你,你要把问题说清楚,大伙才好帮助
2. 控件用的不对。
m_IPText.GetAddress(dwIP);显然是有问题的,你要改成:
m_IPText.GetWindowText(strIP);
AfxMessageBox( strIP );

解决方案2:

引用 3 楼 dongdong814617937 的回复:
大家太注意我那句话了,还是得不到所输入的IP地址啊!
CSetupDlg dlg;//得到IP地址的对话框
if(dlg.DoModal()==IDOK)
{
// AfxMessageBox(strIP);
unsigned char *pIP;
    CString strIP;
DWORD dwIP;
dlg.m_IPText.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
UpdateData(FALSE);
AfxMessageBox(strIP);
}
输出的不正确啊!

unsigned char *pIP;
    CString strIP;
DWORD dwIP;
dlg.m_IPText.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format("%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
把这段代码放到CSetupDlg的OnOK里
把strIP声明成成员变量
然后在现在的位置
AfxMessageBox(dlg.strIP); 

上一篇请教如何重写月历控件
下一篇请问如何动态设置CButton中的Client edge和Static edge属性?
明星图片
相关文章
《 IP Address控件问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)