実行すると、デフォルトで右上隅に X が表示される C++ プログラムがあります。X をクリックすると、プログラムが最小化されます。SHInitDialog 関数を使用して X を OK に変更するコードを追加し、[OK] をクリックするとプログラムが終了するようにしました。
私の質問: SHInitDialog はダイアログ ボックスで最適に動作するため、ウィンドウに適用するより良い方法はありますか?
実行すると、デフォルトで右上隅に X が表示される C++ プログラムがあります。X をクリックすると、プログラムが最小化されます。SHInitDialog 関数を使用して X を OK に変更するコードを追加し、[OK] をクリックするとプログラムが終了するようにしました。
私の質問: SHInitDialog はダイアログ ボックスで最適に動作するため、ウィンドウに適用するより良い方法はありますか?
SHDoneButton APIを見てください。
Windows Mobile 5.0以降では、CreateWindowEx関数を使用して、拡張スタイルにWS_EX_CAPTIONOKBTNを渡すと機能します。
@ctacke SHDoneButtonも機能した可能性がありますが、ダイアログボックスのように処理せずにメインウィンドウを変更したかったのです。これは基本的にSHInitDialogが行っていることです。
C++ でどのように行われるかはわかりませんが、.NET で MinimizeBox プロパティを false に設定すると、[OK] ボタンが表示されます。.NET Windows コードは派手なラッパー コードであるため、同等の C++ が必要です。