Перемещение фокуса на консоль opencv c++

У меня есть консольное приложение c++, которое создает окно opencv.

Я использую cvWaitKey(1), чтобы перехватывать нажатия клавиш на клавиатуре.

Вот что я хотел бы сделать:

Когда пользователь нажимает клавишу s, я бы хотел, чтобы он что-то набрал в консоли. Однако для этого после нажатия s ему нужно вручную щелкнуть окно консоли (чтобы поставить на него фокус), а затем он может ввести текст.

Можно ли перенести фокус на консоль, сгенерировавшую образ opencv, а затем вернуть его обратно в окно opencv?


person Idanis    schedule 11.06.2014    source источник
comment
это, вероятно, возможно с вашим API управления окнами (например, WinAPI в системах Windows) или с библиотеками графического интерфейса высокого уровня, такими как qt, но я сомневаюсь, что это возможно с openCV, поскольку openCV не предназначен для программирования графического интерфейса и дает только некоторые приятные функции для некоторых быстрых и простой временный графический интерфейс для тестирования вашего кода   -  person Micka    schedule 11.06.2014


Ответы (1)


Для проверки окон

HWND WINAPI GetConsoleWindow(void);

,

HWND WINAPI FindWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName
);

и

BOOL WINAPI SetForegroundWindow(
  _In_  HWND hWnd
);

методы.

Окна Opencv имеют имя класса «HighGUI class».

person Andrey Smorodov    schedule 11.06.2014