Скачать MetaTrader 5

PostMessageA

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114282
Forex Trader  
Подскажите кто знает.
В случае если используется команда
PostMessageA(hwnd,WM_COMMAND,33324,0);


а окна с идентификатором hwnd нет (к примеру, закрыто пользователем), то что происходит.
Генерится ли при этом ошибка, которую можно достать с помощью GetLastError() ?
Если нет, то можно ли как-нибудь отловить эту ситуацию ?

MetaQuotes Software Corp.
Модератор
185953
MetaQuotes Software Corp.  
Описание функции
BOOL PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

Попробуйте. Но я не думаю, что из-за несуществующего окна вернется FALSE.
Forex Trader
114282
Forex Trader  
"Но тут малец с поправкой влез.."

Можно детский вопрос? Что такое PostMessageA()?
Уже не первый раз встречаю. Сначала мне показалось, что это опечатка. Теперь не знаю, что и думать.
Это чем-то отличается от PostMessage()? И где об этом прочесть?
MetaQuotes Software Corp.
Модератор
185953
MetaQuotes Software Corp.  
Что такое PostMessageA()?

Это однобайтовый вариант функции PostMessage, а PostMessageW - уникодный вариант.
Forex Trader
114282
Forex Trader  
Что такое PostMessageA()?

Это однобайтовый вариант функции PostMessage, а PostMessageW - уникодный вариант.

Может я опять с глупостями лезу, но наверное стоит отразить это обстоятельство в Help-е? Поиск PostMessageA в навигаторе не даёт никаких результатов.

И ещё.
В скрипте order_buy.mq4 есть строка, содержащая MessageBoxA(). Выглядит как функция, но не выделена цветом. Компилятор при этом ошибок не даёт. Это тоже нечто имеющее смысл? (в описании ф-ии MessageBox() ничего об этом не сказано).
MetaQuotes Software Corp.
Модератор
185953
MetaQuotes Software Corp.  
Может я опять с глупостями лезу, но наверное стоит отразить это обстоятельство в Help-е? Поиск PostMessageA в навигаторе не даёт никаких результатов.

Дело в том, что это не функция языка MQL4, а импортированная из DLL стандартная Win32 функция. Мы к ней никакого отношения не имеем. Мало того, использование недокументированных посылок команд через PоstMessage не гарантирует, что это будет работать в будущем.

В скрипте order_buy.mq4 есть строка, содержащая MessageBoxA(). Выглядит как функция, но не выделена цветом. Компилятор при этом ошибок не даёт. Это тоже нечто имеющее смысл? (в описании ф-ии MessageBox() ничего об этом не сказано)

MessageBoxA - тоже импортированная из DLL функция. Компилятор при этом ошибок не даёт, так как эта функция явно описана через #import.

А MessageBox - встроенная MQL4 функция.
Forex Trader
114282
Forex Trader  
Renat,
Ок. Спасибо. Я с этой точки зрения ещё не смотрел. Спасибо.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий