3

正確に WM_PAINT が呼び出されるのはいつですか? ダイアログ ベースのスロット マシン アプリケーションを作成しようとしていますが、論理的な問題がいくつか発生しました。私のアプリケーションは次のもので構成されます。

  • 「スピン」ボタン
  • 終了ボタン
  • スピンの結果を表示する 3 つの BMP 画像 (コイン/ハート/ソルジャー)

BMP 画像を使用してスピンの最終結果を表示するにはどうすればよいですか? WM_PAINT を使用して画像を表示しようとするのは正しいのですが、ユーザーがスピン ボタンを押して新しい画像を表示するたびに画面を更新するにはどうすればよいですか? 本当に助かりました!

4

1 に答える 1

3

ダイアログ ボックスは通常DefDlgProc、ウィンドウ プロシージャとして使用されます。WM_PAINTで処理できませんDialogProc(ウィンドウ プロシージャではありません)。 ダイアログで独自のウィンドウ プロシージャを使用することもできますが、それはおそらく無駄なことです。

SS_BITMAPダイアログにビットマップを表示する最も簡単な方法は、スタイルで静的コントロールを使用することです。

STM_SETIMAGEメッセージを静的コントロールに送信することで、表示されるビットマップを変更できます。コントロールは、新しいビットマップで自分自身を再描画します。

これは、スピンの結果を表示したいだけなら問題ありませんが、リールの回転をアニメートしたい場合にはうまく機能しません。これを処理するには、リール ビットマップの一部を表示する独自の静的コントロール (つまり、各リールのウィンドウ) を作成できます。

于 2012-10-16T08:57:35.080 に答える