エクスプローラーは常にSW_MAXIMIZE
(STARTF_USESHOWWINDOW
に設定されていますSTARTUPINFO.dwFlags
) でアプリケーションを起動するようです。あなた/Windowsがウィンドウを初めて表示する必要があるときShowWindow
にこの値を使用することはわかっていますが、最大化してはならないウィンドウを最大化するという残念な結果があります。
私のウィンドウは次のスタイルで作成されCreateDialogIndirectParam
、次のスタイルを持っています: WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX|WS_CLIPCHILDREN|DS_MODALFRAME|DS_CENTER|WS_VISIBLE
. 強制を許可する前に が設定されているShowWindow
かどうかを確認しないのはなぜですか? これは Windows のバグですか?WS_MAXIMIZEBOX
STARTF_USESHOWWINDOW
SW_MAXIMIZE
これは、Windows 8.1 を搭載した HP Stream 7 で発生します。エクスプローラーがこれを行うのは、タッチが有効になっているためなのか、画面が小さいためなのかわかりません。
このエクスプローラーの動作はどこかに文書化されていますか? また、それをオフにする方法はありますか? Explorer (またはその他の親プロセス) が初期ウィンドウ モードに影響を与えないようにする最善の方法は何ですか? ( で始まる人をブロックしたくありませんSW_*MINIMIZE*
)
system32 の WinVer.exe にも同じ問題があります。