Когда вызывается WM_PAINT?

Когда именно вызывается WM_PAINT? Я пытаюсь создать диалоговое приложение для игровых автоматов, но столкнулся с несколькими логическими проблемами. Моя заявка будет состоять из:

  • Кнопка «Spin»
  • Кнопка выхода
  • Три изображения BMP для отображения результатов вращения (монета / сердце / солдат)

Как я покажу окончательный результат вращения, используя изображения BMP? Правильно ли я использую WM_PAINT для попытки отображения изображений, как я буду обновлять экран каждый раз, когда пользователь нажимает кнопку прокрутки, чтобы показать новые изображения? Я очень ценю помощь!

2

Решение

Диалоговые окна обычно используют DefDlgProc как оконная процедура. Вы не можете справиться WM_PAINT в вашем DialogProc (это не оконная процедура). Вы можете использовать свою собственную оконную процедуру с диалогом но это, вероятно, больше проблем, чем оно того стоит.

Самый простой способ отобразить растровое изображение в диалоговом окне — это использовать статический элемент управления с SS_BITMAP стиль.

Вы можете изменить отображаемое растровое изображение, отправив STM_SETIMAGE сообщение для статического контроля. Элемент управления позаботится о перерисовке себя с новым растровым изображением.

Это нормально, если вы просто хотите отобразить результат вращения, но не очень хорошо работает, если вы хотите анимировать вращение барабанов. Чтобы справиться с этим, вы можете создать свой собственный статический элемент управления (то есть окно для каждого барабана), который будет отображать часть растрового изображения барабана.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]