資源管理器似乎總是以SW_MAXIMIZE
(STARTF_USESHOWWINDOW
設置在STARTUPINFO.dwFlags
)開始我的申請。我知道ShowWindow
將使用此值the first time您/ Windows需要顯示一個窗口,但它具有最大化不應該最大化窗口的不幸後果。如何停止資源管理器啓動我的應用程序最大化?
我的窗口是用CreateDialogIndirectParam
創建的,它具有以下樣式:WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_CLIPCHILDREN|DS_MODALFRAME|DS_CENTER|WS_VISIBLE
。爲什麼ShowWindow
在允許STARTF_USESHOWWINDOW
強制SW_MAXIMIZE
之前不檢查是否設置了WS_MAXIMIZEBOX
?這是Windows中的錯誤嗎?
這發生在使用Windows 8.1的HP Stream 7上。我不確定資源管理器是否會執行此操作,因爲它啓用了觸摸功能或由於屏幕較小。
這個資源管理器行爲記錄在任何地方,有沒有辦法關閉它?停止Explorer(或任何其他父進程)影響我的初始窗口模式的最佳方法是什麼? (我不想阻止人們開始我SW_*MINIMIZE*
)
WINVER.EXE system32中有同樣的問題:
你確定你直接點擊實際的.exe,而不是在具有**「Run:maximized」**設置的快捷方式上? – 2015-03-08 20:58:09
@RemyLebeau是的,我直接雙擊.exe。即使這是一個快捷方式,我的主要問題仍然適用,我如何防止第一次調用ShowWindow以最大化沒有設置WS_MAXIMIZEBOX的窗口? – Anders 2015-03-08 21:58:10
'cmd.exe/c start/MAX c:\ myapp.exe'也有同樣的問題... – Anders 2015-03-08 22:03:54