DN_EDITCHANGE

Programming Far Manager plugins

DN_EDITCHANGE

Сообщение DN_EDITCHANGE оповещает обработчик об изменении состояния редактируемого элемента диалога - например, ввели символ.

Param1

ID элемента диалога.

Param2

Указатель на структуру FarDialogItem, описывающую изменённый элемент.

Return

В текущем Dialog API результат игнорируется, но для обеспечения работоспособности плагина с будущими версиями Dialog API рекомендуется возвращать:
  • TRUE - "подтверждаю изменения"
  • FALSE - "изменения в окне редактирования не принимаются"

Элементы

ЭлементОписание
DI_COMBOBOX комбинированный список
DI_EDIT строка ввода
DI_FIXEDIT поле ввода фиксированного размера
DI_PSWEDIT поле ввода пароля

Замечания

В Dialog API нельзя принудительно изменить состояние элемента, изменяя элементы структуры FarDialogItem.

Пример

...
// отобразить копию введённых данных только для чисел
if (Msg == DN_EDITCHANGE && Param1 == 2)
{
  FarDialogItem *Item=(FarDialogItem *)Param2;
  int Len=wcslen(Item->PtrData);
  for(int I=0; I < Len; ++I)
    if(!isdigit(Item->PtrData[I]))
      break;
  if(I == Len)
    return FALSE;
  Info.SendDlgMessage(hDlg, DM_SETTEXTPTR, 3, Item->PtrData);
  return TRUE;
}
...
Смотрите также: