「すべてはい」を作成するにはどうすればよいですか” WinAPIを使用するボタン?

StackOverflow https://stackoverflow.com/questions/820633

  •  03-07-2019
  •  | 
  •  

質問

WinAPIを使用するCで記述されたレガシーアプリケーションがあります。 「すべてにイエス」を追加します。いくつかのダイアログボックスのボタン。残念ながら、既存のMessageBox関数では、カスタムボタンまたはボタンキャプションを使用できません。

これを行う最良の方法は何ですか?カスタムボタンを簡単に追加するための巧妙なハックはありますか?または、独自のMessageBox置換を作成する必要がありますか?

役に立ちましたか?

解決 4

独自のDIALOGEX置換リソーステンプレートの作成を終了し、DialogBox()を呼び出して戻り値を確認するだけです。

リファレンス: http://msdn.microsoft.com /library/ms644996(v=VS.85).aspx#modal_box

他のヒント

Windows 2000以降、WinAPIには別の種類のメッセージボックスがあります。それは SHMessageBoxCheck

標準の MB_OKCANCEL / MB_YESNO / MB_OK -type MessageBox をオプションで表示できます。その場合のデフォルトオプションを指定することにより、二度と表示しないでください。

おそらく探しているものではないかもしれませんが、Windows UIとかなり一貫しています。

Vistaでは、ほとんどのシェルの「すべてはい」ダイアログは実際にはこのように機能します-「はい/いいえ」というボタンはありません。 -「すべてのアイテムで選択したアクションを実行する」があります。代わりにチェックボックス。

ただし、ドキュメントの注は心配しています:

  

この機能は、Microsoft Windows XPおよびWindows Server 2003を介して使用できます。Windowsの以降のバージョンでは変更されるか、使用できない場合があります。

MessageBox のようにテキストの折り返しにも注意する必要がある場合があります。また、 MessageBox は、デフォルトのGUIフォントとは異なるフォントを使用します。また、ダイアログが表示されたらサウンドを再生することを忘れないでください:)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top