簡體   English   中英

Windows-10-IOT QT-C++/QML App Fullscreen Gui 在顯示器重新打開時凍結

[英]Windows-10-IOT QT-C++/QML App Fullscreen Gui Frozen when monitor turns back on

問題:
在沒有鍵盤的觸摸屏上,我在 Windows 10 IOT 上運行的 QT C++/QML 應用程序具有全屏 GUI“凍結”,當顯示器打開時(在用戶觸發觸摸屏之后),在它早些時候超時之后並且由於電源設置而關閉。 鼠標 cursor 還在更新。

QML GUI 具有“標志:Qt.FramelessWindowHint | Qt.Window”; 我不想添加“Qt.WindowStaysOnTopHint”,因為它會在從應用程序打開時阻止控制面板 window。 驗證程序仍在運行,只是 GUI 從屏幕關閉的時間點開始凍結。

臨時決議:
“解凍”全屏 GUI 的唯一方法是連接鍵盤並按 Windows 鍵以顯示-隱藏開始菜單,或者使用位於已知 position 或檢測到監視器 WM_POWERBROADCAST 消息的手動 QML 按鈕以編程方式執行此操作。

當應用程序不是全屏時,凍結似乎並沒有發生。

這是由於缺少一些 WM_MESSAGES(例如 WM_PAINT、WM_ACTIVATE 等)在全屏或按下開始菜單按鈕時由操作系統發送給應用程序嗎?

應用程序是否可以通過應用程序以編程方式向自身發送一系列 WM_MESSAGES 而不是 Win 按鈕按鍵(因為普通用戶不應該訪問操作系統或看到任何內容)來糾正監視器重新打開時的應用程序全屏凍結與應用程序運行時的操作系統有關)?

哈哈,

我通過使用 winAPI SetForegroundWindow() function 解決了這個問題...?

:-(快進幾天...

通過進一步測試,似乎單獨使用 SetForegroundWindow() 並不一致/可靠。 有時有效,有時無效。

在 99.999% 的時間里,最可靠的仍然是應用程序發送的 VK_LWIN 按鍵。 但是,如前所述,應用程序用戶不應該看到開始菜單出現然后消失。 最好是 VK_LWIN 按鍵的行為可以在不看到開始菜單的情況下復制到應用程序中......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM