マークアップ(XAML)によるUIの開発を必要とするマネージドクラップやネイティブコードを処理できないため、カスタムGUIフレームワークに取り組んでいます。そのGUIフレームワークを使用するアプリケーションのプロトタイプを作成しようとしていますが、WinAPI内のウィンドウの性質に関するプラットフォーム固有の問題があります。
DWMは、没入感を損なう非クライアント領域のカスタマイズを実際には許可していません。DWMで許可されるのは、カスタマイズの錯覚を与えるためにクライアント領域に拡張することだけです。
したがって、最善の行動は、クライアント領域内の「非クライアント領域」を再構築することであり(WINAPIと比較して)、キャプションを削除し、ボタンを最大化、最小化する必要がありました。したがって、基本的にすべてのものを列挙しました。それらを非アクティブ化するために、それらを一緒にORし、すべてのビットを反転させます。
~(WS_CAPTION | WS_SYSMENU | WS_HSCROLL | WS_VSCROLL | WS_MINIMIZE | WS_MAXIMIZE | WS_THICKFRAME)
これらのスタイルがなくなると、通常のシャットダウン手順(Alt + F4、またはタスクバーを右クリックして[閉じる]に移動)を使用できなくなります。これらは機能しないためです。プロセスを強制終了せずに終了できるように、VK_ESCAPEとPostQuitMessage(0)を手動でインターセプトする必要がありました。
なんでそうなの?そして、どうすればこれを修正できますか?