DM_SETHISTORY
Сообщение
DM_SETHISTORY
позволяет управлять наличием истории в строках ввода.
Param1
ID элемента диалога.
Param2
Указатель на строку, содержащую название истории ввода или
NULL
, если необходимо отключить историю в строке ввода.
Return
FALSE
- указанный элемент диалога Param1
не поддерживает работу с историей.TRUE
- история успешно назначена элементу диалога Param1
.
Элементы
Элемент | Описание |
---|---|
DI_EDIT | строка ввода |
DI_FIXEDIT | поле ввода фиксированного размера |
Замечания
Если строка ввода пуста и у элемента DI_EDIT выставлен флаг DIF_USELASTHISTORY,
то Far Manager сам подставит первое значение из истории в строку ввода.
Пример
Применение данного сообщения можно увидеть в исходных текстах плагина MultiArc.
Следующий пример выставляет историю и очищает строку ввода:
... else if(Msg == MAM_ARCSWITCHES) { static wchar_t SwHistoryName[MAX_PATH]; FSF.sprintf(SwHistoryName,L"ArcSwitches\\%s",pdd->ArcFormat); Info.SendDlgMessage(hDlg,DM_SETHISTORY,4,SwHistoryName); Info.SendDlgMessage(hDlg,DM_SETTEXTPTR,4,L""); } ...
Для того, чтобы Far Manager сам подставил первую строку из истории ключей, необходимо приведённый выше код переписать так:
... else if(Msg == MAM_ARCSWITCHES) { static wchar_t SwHistoryName[MAX_PATH]; FSF.sprintf(SwHistoryName,L"ArcSwitches\\%s",pdd->ArcFormat); Info.SendDlgMessage(hDlg,DM_SETTEXTPTR,4,L""); Info.SendDlgMessage(hDlg,DM_SETHISTORY,4,SwHistoryName); } ...
Т.е. сначала строка ввода очищается, потом происходит назначение истории для элемента.
Смотрите также: