Когда именно вызывается WM_PAINT? Я пытаюсь создать диалоговое приложение для игровых автоматов, но столкнулся с несколькими логическими проблемами. Моя заявка будет состоять из:
Как я покажу окончательный результат вращения, используя изображения BMP? Правильно ли я использую WM_PAINT для попытки отображения изображений, как я буду обновлять экран каждый раз, когда пользователь нажимает кнопку прокрутки, чтобы показать новые изображения? Я очень ценю помощь!
Диалоговые окна обычно используют DefDlgProc
как оконная процедура. Вы не можете справиться WM_PAINT
в вашем DialogProc
(это не оконная процедура). Вы можете использовать свою собственную оконную процедуру с диалогом но это, вероятно, больше проблем, чем оно того стоит.
Самый простой способ отобразить растровое изображение в диалоговом окне — это использовать статический элемент управления с SS_BITMAP
стиль.
Вы можете изменить отображаемое растровое изображение, отправив STM_SETIMAGE
сообщение для статического контроля. Элемент управления позаботится о перерисовке себя с новым растровым изображением.
Это нормально, если вы просто хотите отобразить результат вращения, но не очень хорошо работает, если вы хотите анимировать вращение барабанов. Чтобы справиться с этим, вы можете создать свой собственный статический элемент управления (то есть окно для каждого барабана), который будет отображать часть растрового изображения барабана.
Других решений пока нет …