怎么判断IP address控件中输入IP的合法性?判断已经输入了ip地址就可以了。
没输入的话,或者输入不全,提示用户从新输入的。
help~

解决方案 »

  1.   

    自带的函数只能判断是不是四个都没输,
    默认其他Field为0,即使用GetWindowText函数
    if(m_iac.IsBlank())
    MessageBox("Error");
      

  2.   

    如果输入不全,用
    HWND hWnd = NULL;
    while(hWnd = FindWindowEx(m_iac.m_hWnd,hWnd,NULL,NULL))
    if(!::GetWindowTextLength(hWnd))
    {
    ::SetFocus(hWnd);
    //break;//因为是从后面开始,所以不用立即退出
    }
      

  3.   

    回  vcmute(横秋) 不明白你的意思? 这样吗?
    这样是没有效果的,我MFC刚开始做东西,很多不懂
    HWND hWnd = NULL;
    while(hWnd = FindWindowEx(m_iac.m_hWnd,hWnd,NULL,NULL))
    if(!::GetWindowTextLength(hWnd))
    {
            ::SetFocus(hWnd);
                     if(m_iac.IsBlank())
            MessageBox("Error");
    //break;//因为是从后面开始,所以不用立即退出
              }
      

  4.   

    你可以先用GetAddress(nfield0,nfield1,nfield2,nfield3)获得此四个域的值,然后再进行合法性检查不就行了。
      

  5.   

    倒你们这帮人哪。if( 4 != ::SendMessage( hwndIPAddr, IPM_GETADDRESS, 0, ( LPARAM )&m_uServerIP ) )
    {
    ::MessageBox( m_hWnd, _T("输入的服务器 IP 地址不完整。  "), _T("错误"), MB_OK | MB_ICONWARNING | MB_TOPMOST );
    ::SetFocus( hwndIPAddr );
    return;
    }
      

  6.   

    everandforever(Forever) 说的正是我要说的。
    楼主没有意见了吧。
      

  7.   

    CIPAddressCtrl::GetAddress
    int GetAddress( BYTE& nField0, BYTE& nField1, BYTE& nField2, BYTE& nField3 );int GetAddress( DWORD& dwAddress );Return ValueThe number of non-blank fields in the IP Address Control.
    只能说明有多少个不为空,并不能定位到对应的空白位置