Есть два приложения которые работают параллельно (условно 1 и 2). Приложение 2 написано на С++(Qt). Нормальная работа приложения 2 - окно на весь экран с перекрытием меню "Пуск". Когда приложение 1 дает сигнал, приложение 2 должно вывести свое окно на первый план, при этом, закрыть собой весь экран (т.е. панель пуск не видна). На данный момент используются два метода: show();
и activateWindow();
.
Но они только выводят окно в перед, при этом не закрывая панель пуск и видно как ярлык мигает желтым цветом.
Ранее уже были проверены еще некоторые методы и функции:
AllowSetForegroundWindow(true);
- нет эффекта.
HWND hand = FindWindowA("LVDChild", "name"); if(hand) SetForegroundWindow(hand);
- помогает с выводом приложения 1, но с приложением 2 такой же эффект как и от activateWindow();
.
setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
- работает через раз, точнее 1 раз срабатывает и больше не получается.
SetWindowPos ( hwndYourWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE );
... SetWindowPos ( hwndYourWindow, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE );
- нет эффекта.
Интересен тот факт, что такое поведение наблюдается только на Windows 10. Ранее приложения стояли на Windows 7 86/64 и Windows 8 86/64 и таких проблем вообще не было.
У кого какие идеи?:)
работает на Win7:
//Убираем рамки
LONG lStyle = GetWindowLong(window, GWL_STYLE);
lStyle &= ~(WS_CAPTION | WS_THICKFRAME | WS_SYSMENU | WS_SIZEBOX);
SetWindowLong(window, GWL_STYLE, lStyle);
//Двигаем окно
SetWindowPos(window, HWND_TOPMOST, 0, 0, 1920, 500, SWP_SHOWWINDOW);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть конструктор, который принимает строку-число, цифры которого записывает в массив numberПри выводе данного массива получаю почему-то рандомные...
В примере асинхронного tcp-сервера на бусте связывается функция (все это происходит в классе, наследующим enable_shared_from_this):