Member 13089825 Ответов: 1

Управление Ip-адресом


как отличить пустое значение (....) и 0.0.0.0 в управлении ip-адресом

Что я уже пробовал:

Я правильно получаю ip адрес 0.0.0.0 но он не установлен на cedit он просто показывает пустой

Kats2512

Что я уже пробовал:

Я правильно получаю ip адрес 0.0.0.0 но он не установлен на cedit он просто показывает пустой

это на самом деле не показывает никому из нас, что вы пробовали! поставьте какой-нибудь код для того, чтобы люди могли помочь!

Member 13089825

извините, что я пропустил ранее

когда я использовал нижеприведенную вещь
CWnd* pwndCtrl = GetFocus();
int ctrl_ID = pwndCtrl- & gt;GetDlgCtrlID();
if (! ((CIPAddressCtrl*) pwndCtrl)- & gt;IsBlank()) {

AfxMessageBox(L " не пустой");
}
его всегда будет внутри (печать не пустая)
не могли бы вы посоветовать мне, как показать 0.0.0.0 на cedit

1 Ответов

Рейтинг:
2

Jochen Arndt

Видеть Класс CIPAddressCtrl[^]. Класс обеспечивает IsBlank() метод проверки пустоты всех полей и GetAddress () возвращает количество непустых полей.


Member 13089825

спасибо за ваш ответ.
когда я жужжал под этой штукой
CWnd* pwndCtrl = GetFocus();
int ctrl_ID = pwndCtrl- & gt;GetDlgCtrlID();
if (! ((CIPAddressCtrl*) pwndCtrl)- & gt;IsBlank()) {

AfxMessageBox(L " не пустой");
}
его всегда будет внутри (печать не пустая)
не могли бы вы посоветовать мне, как показать 0.0.0.0 на cedit

Jochen Arndt

Есть ли у вас элемент управления IP-адресом или элемент управления редактированием?
Откуда вы вызываете вышеприведенный код?

GetFocus() возвращает элемент управления, который имеет фокус. Это может быть любой элемент управления, а не элемент управления IP-адресом.

Если вы вызываете это из диалогового окна, содержащего этот элемент управления, используйте

CIPAddressCtrl* pCtrl = (CIPAddressCtrl*)GetDlgItem(ID_OF_IP_ADDRD_CTRL);
if (pCtrl->IsBalnk())
и замените идентификатор на тот, который используется в вашем приложении.

Или если у вас есть переменная-член для элемента управления, используйте ее.

Member 13089825

Я использую элемент управления редактированием
когда я сделал это ниже
CIPAddressCtrl* pCtrl = (CIPAddressCtrl*)GetDlgItem(IDC_EDIT_IP_RANGE_START);
if (pCtrl - > IsBlank ()) / / ненулевое значение, если все поля управления IP-адресом пусты; в противном случае 0
{
AfxMessageBox(L " пустой");


}
он приходит как пустой после ввода значений как 0.0.0.0

Jochen Arndt

Если у вас есть элемент управления CEdit, вы не можете привести его к CIPAddressCtrl.

Я предположил, что CIPAddressCtrl beacuse предмет вашего вопроса - "контроль Ip-адресов".

Если у вас есть элемент управления CEdit с маской ввода, вы должны реализовать проверку самостоятельно (например, с помощью GetWindowText() и проверки содержимого).

ЗАПИСКА:
При использовании GetDlgItem () приведите к точному типу элемента управления, на который ссылается идентификатор. Все остальное не будет работать и может привести к сбою вашего приложения.

Member 13089825

всякий раз, когда он вводится как 0.0.0.0, он считается пустым (пустым) и не отображается на элементе управления редактированием.
(в соответствии с вашим предложением я проверил пустое состояние для каждого элемента управления редактированием.
какой бы вход ни содержал 0.0.0.0, он считается пустым.
не могли бы вы подсказать, как показать 0.0.0.0 на элементе управления редактированием