![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Svia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Обычная винапишная программа, созданная мастером студии. В WndProc обрабатываю 2 события: WM_SIZE и WM_SIZING. Второе отрабатывает отлично, на каждый чих с изменениями размера выдает информацию. Первое же я получаю лишь при старте программы и впоследствии - ни разу. Насколько я понял msdn это сообщение посылается программе каждый раз когда окно ИЗМЕНИЛО свои размеры. Однако по окончанию дерганья окошка программа это сообщение не получает. Проверим Spy++ - действительно, не получает. Окно создается со стилями CS_HREDRAW | CS_VREDRAW.
|
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
это на WM_SIZE не влияет влиять может опущенный флаг "Отображать содержимое окна при перетаскивании" в свойствах экрана тогда да: ресайзится только рамка окна, а изменение размеров происходит только при отпускании мыши -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Svia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Дело в том, что при отпускании мышки окно НЕ ПОЛУЧАЕТ СООБЩЕНИЕ WM_SIZE, о чем я написал. Будет ли оно его получать в процессе дерганья - мне без разницы. А вот то, что по окончанию этого действия WM_SIZE не прилетает - это напрягает. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
показывай обработку всех сообщений, чего гадать-то
проблем с приходом WM_SIZE в принципе быть не должно (либо где-то пропущен break, либо перекрыт стандартный функционал) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
Svia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Добавлено через 2 минуты и 57 секунд Нужное - начиная с 88 строки Это сообщение отредактировал(а) Svia - 26.5.2009, 21:13 |
|||
|
||||
GremlinProg |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
ну да, вот сейчас сразу все понятно - перекрыт функционал
я не рекомендую ни кому использовать форму switch'а, используемую по-умолчанию:
это очень неудобная форма, поскольку очень просто не заметить такого рода перекрытия:
т.е., на WM_WINDOWPOSCHANGED должен быть обязательно вызван DefWindowProc Svia, я тебе рекомендую привести WndProc к следующему виду:
обрати внимание, это не одно и то же -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||
|
|||||||
Svia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 20.5.2009 Репутация: нет Всего: нет |
Гмм... Спасибо большое. Неочевидная вещь, спасибо, завтра попробую собрать иначе.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |