Пользуюсь нативной winapi.mqh.
Хэндл окна ордера нахожу, но комбобокс (Type) никак не находится...
Пытаюсь так:
Возвращает 0.
Вот control id:
GetDlgCtrlID
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdlgctrlid
На вход надо подавать хэндл контрола. А что мне подавать, если у меня как раз задача узнать этот хэндл?
![GetDlgCtrlID function (winuser.h) - Win32 apps GetDlgCtrlID function (winuser.h) - Win32 apps](https://c.mql5.com/36/52/getdlgctrlid-function-winuser-h.png)
- 2021.10.13
- jwmsft
- docs.microsoft.com
GetDlgCtrlID(0xD71A7E)
Получаем 2862
GetDlgCtrlID()
А обратно из контрола хэндл
GetDlgItem()
всегда 0.
Разобрался. Оказывается, я неправильно хэндл окна ордера находил. Находится таким образом:
res=GetWindow(m_program_window_handle,6);
Оказывается, нетривиальная задача хэндл окна ордера получить.
res=FindWindowW("#32770","Order");
Вот так я его успешно нахожу в дебаге. А как вживую запускаю, то 0. Хотя все свойства окна такие же хоть в дебаге, хоть вживую.
И так тоже нестабильно:
res=GetWindow(m_program_window_handle,6);
Оказывается, нетривиальная задача хэндл окна ордера получить.
Вот так я его успешно нахожу в дебаге. А как вживую запускаю, то 0. Хотя все свойства окна такие же хоть в дебаге, хоть вживую.
И так тоже нестабильно:
FindWindowW
Эта функция не ищет в дочерних окнах, только верхний уровень
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowexw![FindWindowExW function (winuser.h) - Win32 apps FindWindowExW function (winuser.h) - Win32 apps](https://c.mql5.com/36/52/findwindowexw-function-winuser.png)
- 2021.10.13
- jwmsft
- docs.microsoft.com
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Пользуюсь нативной winapi.mqh.
Хэндл окна ордера нахожу, но комбобокс (Type) никак не находится...
Пытаюсь так:
m_order_mode_combo_handle=GetDlgItem(m_handle,00002862);
Возвращает 0.
Вот control id: