|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
Не могу отправить окну сообщение WM_PAINT (точнее, не могу перерисовать окно)17.01.2013, 11:14. Показов 6142. Ответов 18
Метки нет (Все метки)
Смотрите оконную функцию она в самом низу. Всё остальное шаблонный код по созданию окна.
Спасибо, кто откликнется.
0
|
||||||
| 17.01.2013, 11:14 | |
|
Ответы с готовыми решениями:
18
не могу отправить сообщение Отправить сообщение окну VkApi / Vk.Net - Не могу отправить сообщение |
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 17.01.2013, 13:45 | |
|
Тебе нужна бегущая строка? Тогда WM_PAINT не подойдет, как по мне. Ближе к вечеру постродаю с этим, если чё.
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 17.01.2013, 14:24 | |
|
i слишком быстро выходит за пределы строки, а старый текст нигде не стирается. А так всё более-менее.
И UpdateWindow просто вызывает WndProc с WM_PAINT, если есть неперерисованные части, так что в обработчике WM_PAINT он точно не нужен.
0
|
|
|
Супер-модератор
|
||
| 17.01.2013, 14:59 | ||
|
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||||
| 17.01.2013, 15:50 [ТС] | |||||||||
|
Короче всё решилось так:
Но на самом деле это фигня, я это сделал неосмысленнно, я угадал. Почему я вижу это решение корявым? А вот:
Короче, как у меня стек не рушится- непонятно.
0
|
|||||||||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|||
| 17.01.2013, 16:59 | |||
|
(Аналогично, например, WM_QUIT: если после PostQuitMessage послать ещё какое-то сообщение, то оно обработается до WM_QUIT.)
0
|
|||
|
Супер-модератор
|
||
| 17.01.2013, 17:26 | ||
|
Так что не надо вот этих вот догадок. Я знаю, как оно работает. Если задан стиль CS_HREDRAW | CS_VREDRAW - то сообщения не приходят при простом перемещении окна. Сделай размеры окошка в CreateWindow поменьше (скажем, 300x150, чтоб случайно не вылететь), и затаскайся по десктопу, ни одного WM_PAINT-а не увидишь...
0
|
||
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 17.01.2013, 20:26 [ТС] | |
|
Ну хорошо, пусть окну не посылается WM_PAINT когда оно не не посылается. Согласен.
Фактически вы научили меня как таскать окно, чтобы к нему не приходили WM_PAINT и как таскать окно, чтобы к нему приходили WM_PAINT. Спасибо, за науку, а как на счёт вопроса? Итак, таскаем окно, чтобы к нему приходили WM_PAINT- просто заводя его за края декстопа. Ну вот, собсно и всё. Вопрос- как сделать чтобы при отрисовке оно отрисовалось. То есть я задумываю при каждой обработке WM_PAINT уменьшить строчку на один символ, а не получается. От чего ушли к тому и пришли. Я нашёл какой-то там способ (выше описал), но хотелось бы всё же осмысленное что-нибудь.
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 17.01.2013, 22:01 | |
|
А, забыл сказать. При использовании BeginPaint + EndPaint перерисовываются только те части окна, которые надо перерисовать, остальные отсекаются. Если угол окна был загорожен другим окном, то от перерисовки текста в середине результата не будет, потому что эта часть окна не была "испорчена".
Общая логика такая: событие, которое меняет какие-то данные, вызывает InvalidateRect, а получившийся WM_PAINT перерисовывает всё, что надо.
1
|
|
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
||||||
| 17.01.2013, 22:02 | ||||||
0
|
||||||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 17.01.2013, 22:09 | |
|
Digit@ll, GetWindowDC - всегда, а ReleaseDC - в if'е - не айс.
Добавлено через 3 минуты Да и отрисовывать по WM_TIMER не очень хорошо, потому что если потом будет WM_PAINT, то он или затрёт всё, или в нём придётся писать тот же самый DrawText...
0
|
|
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 17.01.2013, 22:17 | |
|
Да, возможно, я думал об этом, тогда добавь и ему статичности. И оставьте уже WM_PAINT, он безобидный, если его не трогать.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|||||||
| 17.01.2013, 22:24 [ТС] | |||||||
|
Somebody,
Тогда я угадал с этим кодом.
0
|
|||||||
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 18.01.2013, 00:38 | |
|
Ну и kravam, сам себя хвалит. У-ха-ха.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
|
| 18.01.2013, 08:02 [ТС] | |
|
Я бы по-другому это назвал. Делаю выводы о правильности или неправильности своего решения.
0
|
|
|
Brainsbreaker
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
|
|
| 18.01.2013, 11:47 | |
|
Я это к тому, что у тебя мутотень в коде. Но по-правде сказать мне эта возня надоела, давай уже что-то новое.
0
|
|
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
|
||||||
| 18.01.2013, 12:49 [ТС] | ||||||
|
Это код Айзелиона, если ты знаешь, кто это такой. И я добавил туда лишь
Убирается на раз. Ты не этого не сделал потому, что ты не умеешь. Тебе проще сказать "мутотень" нежели попытаться исправить- а это делается, потворю ОЧЕНЬ ЛЕГКО. Да и не факт, что править надо. Вердикт: мутотень у меня в коде всяко лучше чем мутотень у тебя в голове.
0
|
||||||
| 21.01.2013, 13:19 | |
|
Не по теме: Да, золотые слова. Пусть мутотень будет у тебя в кодах, чем у меня в голове. Всех благ.
0
|
|
| 21.01.2013, 13:32 [ТС] | |
|
0
|
|
| 21.01.2013, 13:32 | |
|
Помогаю со студенческими работами здесь
19
Не могу отправить сообщение на почту mail.ru Отправить сообщение окну из программы-сервиса Помогите с MFC. Не могу разобраться с WM_PAINT Не могу отправить сообщение по Winsock компу с русским именем Не могу перерисовать панели Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|