Как отменить диалог при помощи DM_CLOSE?

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Как отменить диалог при помощи DM_CLOSE?

Post by NightRoman »

Энциклопедия: "Param1 - ID элемента, который будет возвращён из функции DialogRun (или -1 для элемента, имеющего фокус ввода)."
Факт: При отмене диалога DialogRun возвращает как раз -1.

Что мне нужно передавать в DM_CLOSE, чтобы DialogRun вернул -1?
-1 не годится, это приведет к возврату "элемента, имеющего фокус ввода"
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Как отменить диалог при помощи DM_CLOSE?

Post by Shmuel »

Очевидно, что существующее API этого не позволяет.
Но можно передать минус 2 или другое отрицательное число, кроме -1, т.к. -1 уже "занята".
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Как отменить диалог при помощи DM_CLOSE?

Post by NightRoman »

Да, похоже на то. Такое решение работает, но это хак.. В любой момент Фар АПИ "имеет право" не работать с -2.

А что думают разработчики? Может, просто задокументировать этот -2 в энциклопедии?

В FarNet мне тоже надо как-то эту фичу документировать. Писать про -2 с пометкой "это хак" как-то не очень.
Post Reply

Return to “Разработка плагинов”