В общем имею следующую проблему: есть приложение, главное окно скрыто, по комбинации клавиш выводится окошко и ему задается фокус, при потере фокуса (клик за пределами окна) оно скрывается, при другой комбинации все также, но перед выводом окошка выполняется программа имитирующая комбинацию клавиш Ctrl+C, в этом случае окно также появляется но не имеет фокус и поэтому и не может его потерять при клике за пределами окна, что является неудобством т. к. скрываться оно должно именно при клике за его пределами.
Несколько примечаний:
Открыть спойлер
Ниже привожу фрагменты сходного кода тестового приложения:Вот код утилитки которая имитирует комбинацию клавиш Ctrl+C, задержка для предотвращения конфликта с комбинацией которой вызывается запуск этой утилиты в программе, делал на основе примера с оф. сайта Майкрософта:
Открыть спойлер
Вот пример главного окна программы, которое скрыто:
Открыть спойлер
hot1 и hot2 используются для обычного отображения и отображения после вызова процесса (утилитки), метод отображения как видно один и тот же, задержку сделал что-бы было видно что хоть имитация комбинации Ctrl+C явно мешает получить окну фокус, но при этом при отображении окна второй комбинацией в этом промежутке окно всегда имеет фокус, а по истечении задержки последнее его все-равно не имеет.
Мучился с проблемой целый день + сегодня, так и не понял в чем прикол что окно имеет фокус если его вызвать одной комбинацией даже после имитации Crtl+C и не имеет если второй, хотя функция отображения одна и та же.
Вот измененная функция отображения:
Открыть спойлер
Вот если кто хочет проверить исходники примера (нужна libQxt): test.zip
Буду рад любым предложениям, сейчас просто в недоумении от поведения программы!