Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Winapi программа получает WM_SIZE лишь однажды |
Автор: Svia 26.5.2009, 19:53 |
Обычная винапишная программа, созданная мастером студии. В WndProc обрабатываю 2 события: WM_SIZE и WM_SIZING. Второе отрабатывает отлично, на каждый чих с изменениями размера выдает информацию. Первое же я получаю лишь при старте программы и впоследствии - ни разу. Насколько я понял msdn это сообщение посылается программе каждый раз когда окно ИЗМЕНИЛО свои размеры. Однако по окончанию дерганья окошка программа это сообщение не получает. Проверим Spy++ - действительно, не получает. Окно создается со стилями CS_HREDRAW | CS_VREDRAW. |
Автор: GremlinProg 26.5.2009, 20:20 |
это на WM_SIZE не влияет влиять может опущенный флаг "Отображать содержимое окна при перетаскивании" в свойствах экрана тогда да: ресайзится только рамка окна, а изменение размеров происходит только при отпускании мыши |
Автор: Svia 26.5.2009, 20:26 | ||
Дело в том, что при отпускании мышки окно НЕ ПОЛУЧАЕТ СООБЩЕНИЕ WM_SIZE, о чем я написал. Будет ли оно его получать в процессе дерганья - мне без разницы. А вот то, что по окончанию этого действия WM_SIZE не прилетает - это напрягает. |
Автор: GremlinProg 26.5.2009, 20:51 |
показывай обработку всех сообщений, чего гадать-то проблем с приходом WM_SIZE в принципе быть не должно (либо где-то пропущен break, либо перекрыт стандартный функционал) |
Автор: Svia 26.5.2009, 21:11 | ||
Добавлено через 2 минуты и 57 секунд Нужное - начиная с 88 строки |
Автор: GremlinProg 26.5.2009, 21:46 | ||||||
ну да, вот сейчас сразу все понятно - перекрыт функционал я не рекомендую ни кому использовать форму switch'а, используемую по-умолчанию:
это очень неудобная форма, поскольку очень просто не заметить такого рода перекрытия:
т.е., на WM_WINDOWPOSCHANGED должен быть обязательно вызван DefWindowProc Svia, я тебе рекомендую привести WndProc к следующему виду:
обрати внимание, это не одно и то же |
Автор: Svia 26.5.2009, 23:36 |
Гмм... Спасибо большое. Неочевидная вещь, спасибо, завтра попробую собрать иначе. |