DM_SETHISTORY позволяет управлять наличием истории в строках ввода.
NULL, если необходимо отключить историю в строке ввода.
FALSE - указанный элемент диалога Param1 не поддерживает работу с историей.TRUE - история успешно назначена элементу диалога Param1.
| Элемент | Описание |
|---|---|
| DI_EDIT | строка ввода |
| DI_FIXEDIT | поле ввода фиксированного размера |
Следующий пример выставляет историю и очищает строку ввода:
...
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);
}
...
Т.е. сначала строка ввода очищается, потом происходит назначение истории для элемента.