На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> мигание окна при перетаскивании или именении размеров
    Приветствую

    У меня есть связка из 2 окон, когда изменяешь размеры одного, второе меняет свою позицию, при перетаскивании тоже самое.
    Когда это происходит окно начинает мигать (окно пустое, внутри ничего нет кроме 1 кнопки).
    Причем мигает не содержимое (с этим можно бороться), а само окно - границы, не происходит перерисовки окон под ним и т.д. (см. рисунок)

    Как с этим бороться?
    Прикреплённая картинка
    Прикреплённая картинка
      обрабатывай для окна WM_ERASEBKGND и просто возвращай оттуда не ноль.
        Fireman, как я понимаю у тебя не успевает перерисоватся окно которое под твоим... если это твое окно, вызови принудительную прорисовку...
        Такие артефакты довольно часто встречаются в Винде, по крайней мере я замечал это в случае, если запущен "тяжелый" процесс, а я пытаюсь работать с окном и перетаскиваю его, так активное окно перетаскивается, а те которые были под ним неуспевают перерисоватся...
          R-2, т.е. я могу особенно не заморачиваться?
          просто мне казалось что другие программы как-то обходят это затруднение
            Fireman, но ведь это происходит при перетаскивании или при изменении размера окна... если так, то я в этом случае ничего не делаю.
            Как я заметил у тебя, на представленной картинке, верхний рисунок "Артефакт при перетаскивании", окно на заднем фоне прорисовывает панели, но непрорисовывает клиентскую область... значит само приложение на заднем фоне ждет сообщение о перерисоке, оно будет вызвано после того как ты закончишь операцию перетаскивания или изменения размера и оно перерисуется. Вообще, по крайней мере у меня, при перетаскивании окна возникает просто рамка, и окно появляется на том месте куда я перетащил ее. Помнится мне, где-то в Винде было что-то типа "Отображать внутреннюю область при перетаскивании"... это опциональное свойство, его можно включить или выключить. По моему так...

            Пробовал что LuckLess советовал? Если да, то как разультат?
              Пробовал - очень плохо получается
              поскольку задний фон не перерисовывается, появляются такие же артефакты, только уже на моем окне а не на окне над которым я веду своим овном
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0719 ]   [ 16 queries used ]   [ Generated: 14.08.25, 21:06 GMT ]