3

究竟何时调用 WM_PAINT?我试图创建一个基于对话的老虎机应用程序,但我遇到了几个逻辑问题。我的申请将包括:

  • “旋转”按钮
  • 退出按钮
  • 三个BMP图像显示旋转的结果(硬币/心脏/士兵)

我将如何使用 BMP 图像显示旋转的最终结果?我是否正确使用 WM_PAINT 尝试显示图像,每次用户按下旋转按钮以显示新图像时我将如何刷新屏幕?我真的很感激帮助!

4

1 回答 1

3

对话框通常DefDlgProc用作窗口过程。你不能处理WM_PAINT你的DialogProc(它不是一个窗口过程)。 您可以将自己的窗口过程与对话框一起使用,但这可能比它的价值更麻烦。

在对话框上显示位图的最简单方法是使用带有SS_BITMAP样式的静态控件。

您可以通过将STM_SETIMAGE消息发送到静态控件来更改显示的位图。控件将负责使用新位图重新绘制自身。

如果您只想显示旋转的结果,这是可以的,但如果您想为卷轴的旋转设置动画,则效果不佳。要处理此问题,您可以创建自己的静态控件(即每个卷轴的窗口),以显示卷轴位图的一部分。

于 2012-10-16T08:57:35.080 回答