關於對話方塊最小化到托盤後,點選托盤圖示後只在工作列顯示而無法還原視窗的解決方法。
在跟隨網上的貼子做完怎樣將程式縮小到托盤和怎樣還原之後,發現網上所說的只用ShowWindow(SW_SHOW)只能將程式在工作列顯示出來,而並不會自動還原到最小化之前的狀態(也就是仍然是最小化的,要想看視窗仍然只能在工作列上點選程式,以使程式恢復),不符合程式設計習慣,因此嘗試在使用ShowWindow函式之後使用SetWindowPos函式,但是無論裡面的引數怎樣設定也無法將視窗自動還原;
隨後又嘗試向視窗傳送WM_SIZE訊息,但是仍然失敗。
無奈之下,只好過載PreTranslateMessage函式,然後使用TRACE巨集將所有的訊息全部列印出來(當然得過濾掉WM_MOUSEMOVE訊息,否則滿屏都是訊息。)。結果發現在任務上點選程式使程式還原時,程式收到了兩個訊息,一個訊息是(274,61728, 0),而另一個訊息是(5,1,19661280),隨後直接在ShowWindow(SW_SHOW);語句後新增SendMessage(274, 61782, 0)和SendMessage(5,1,19661280)便可以實現視窗的自動還原了。
追查274號和5號訊息發現,原來274號訊息就是WM_SYSCOMMAND訊息,而5號訊息就是WM_SIZE,隨後進行優化,只傳送274號訊息,即使用SendMessage(WM_SYSCOMMAND, SC_RESTORE)即可實現視窗的還原了。
注:最終實現方案:ShowWindow(SW_RESTORE);
相關文章
- win10托盤圖示不顯示怎麼回事_win10工作列托盤圖示顯示不完全如何修復Win10
- 在托盤上顯示Balloon Tooltip
- QT最小化程式到托盤執行QT
- 【Qt開發】實現系統托盤,托盤選單,托盤訊息QT
- Ubuntu18.04 點選啟動器圖示視窗最小化和還原Ubuntu
- win7系統隱藏NVIDIA托盤圖示的操作方法Win7
- Windows10系統怎麼隱藏托盤圖示Windows
- win10qq圖示怎樣在工作列顯示_win10qq圖示在工作列顯示的方法Win10
- C# Winform 主視窗最小化隱藏至系統托盤中(適合小白)C#ORM
- 在Ubuntu 18.04中安裝Wine QQ、微信、TIM,並安裝圖示托盤Ubuntu
- C# 顯示、隱藏視窗對應的工作列C#
- win10系統工作列圖示固定後無法取消固定也無法固定新圖示如何解決Win10
- win10 選擇圖示怎麼顯示工作列_win10選擇快速操作圖示如何顯示在工作列Win10
- win10電腦圖示顯示白色方塊怎麼辦?win10桌面圖示顯示白色方塊的解決方法Win10
- 系統托盤建立
- C# 托盤通知C#
- win10英特爾顯示卡設定圖示不見了如何解決_win10英特爾核芯顯示卡托盤圖示不見了怎麼找回Win10
- win10u盤無法顯示資料夾怎麼辦_win10系統u盤資料夾無法顯示出來解決方法Win10
- 電腦關機後鍵盤燈還亮怎麼回事 關機後鍵盤燈還亮的解決辦法
- Win10系統工作列沒有顯示音量圖示的解決方法Win10
- 在c++MFC下用PCL顯示操作點雲檔案 MFC對話方塊顯示操作PCL點雲C++
- Excel2007工作表如何分視窗顯示?Excel2007工作表分視窗顯示的方法Excel
- win10軟體無法固定到工作列怎麼辦 win10固定圖示到工作列失效解決方法Win10
- Windows10系統下工作列圖示名稱不顯示的解決方法Windows
- win32gui中操作工作列托盤區的函式Win32GUI函式
- win10 1903系統下工作列圖示固定後無法取消如何解決Win10
- 【VMware VCF】解決還原 SDDC Manager 備份後無法顯示映像管理中的可用映像問題。
- Avalonia 實現動態托盤
- pip install了之後還是顯示no module named xxx的解決辦法
- 敲擊鍵盤後字元怎麼出現在顯示器字元
- win10工作列圖示不顯示怎麼辦 修復工作列顯示不正常的辦法Win10
- win10系統下工作列不顯示縮圖的解決方法Win10
- win10系統mpg無法顯示縮圖解決方法Win10圖解
- win10工作列網路圖示不見了怎麼辦_win10工作列沒有顯示網路圖示的解決方法Win10
- win10 工作列底部顯示不全怎麼辦_win10工作列只顯示一半怎麼解決Win10
- 工作列圖示空白,圖示是一塊白板
- vmware不顯示usb圖示解決辦法
- VUE:點選開啟的對話方塊外面時,對話方塊總是被關閉Vue
- 成功解決github無法顯示圖片問題Github