look997 Napisano Czerwiec 26, 2013 Zgłoś Share Napisano Czerwiec 26, 2013 Znam kilka flag, które sprawiają że okno jest zawsze na wierzchu(np. Qt::ToolTip, Qt::WindowStaysOnTopHint, Qt::Popup), ale przy każdym sposobie jest ten sam problem. Klikając w menu start, obszar tray, puste pole między programami a trayem - okno i tak się ukrywa. Wszystko jest w porządku gdy przełączam się między różnymi aplikacjami i klikam wszędzie prócz wymienionych wyżej miejsc. Tak samo działają inne aplikacje które kiedyś używałem, więc być może jest to taka nieproszona funkcja Windowsa. Kodu nie ma sensu podawać, bo przy tym niema gdzie zrobić błędu, a zresztą flagi działają jak należy nie licząc tego "niewielkiego" problemu. Link do komentarza Udostępnij na innych stronach More sharing options...
look997 Napisano Czerwiec 26, 2013 Autor Zgłoś Share Napisano Czerwiec 26, 2013 Na pewnym forum dostałem odpowiedź, że w WinApi ten efekt można osiągnąć za pomocą: SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE); Teraz pytanie, jak to przenieść do QT? Takie coś działa: HWND hWnd = reinterpret_cast<HWND>(this->winId()); SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); Ale okazuje się, że dokładnie tak samo jak flagi z tematu. Wyjaśnienie w czym dokładnie jest problem: Link do komentarza Udostępnij na innych stronach More sharing options...
look997 Napisano Czerwiec 30, 2013 Autor Zgłoś Share Napisano Czerwiec 30, 2013 Rozwiązanie jest, cykliczne wykonywanie takiego czegoś: if(this->isActiveWindow() == false} { this->raise(); } Tylko przy zminimalizowanym oknie nie zawsze działa, ale mi jest to niepotrzebne. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.