На главную
ПРАВИЛА 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
  
> Выход из OnPaint без создания CPaintDC dc(this);, Если не создавать в OnPaint CPaintDC dc(this);, то программа вообще перестает правильно работать
    Есть класс CMyVideo, производный от CWnd. В классе есть функция OnPaint:

    ExpandedWrap disabled
      void CMyVideo::OnPaint()
      {
          if (wp == NULL) return;
          CPaintDC dc(this); // device context for painting


    В просмотре CView, есть несколько объектов класса CMyVideo.
    Некоторые объекты этого класса не нуждаются в перерисовке, и я после проверки этого факта,
    сразу выхожу из OnPaint, не создавая CPaintDC dc(this). Я потратил пол ночи, чтобы понять,
    почему некоторые объекты не перерисовываются! Оказалось, что после первого же выхода без создания
    CPaintDC dc(this), OnPaint перестает вообще работать во всех других объектах! При этом
    никаких сообщений не выдается. А если последовательность операторов такая:
    ExpandedWrap disabled
      void CMyVideo::OnPaint()
      {
          CPaintDC dc(this); // device context for painting
          if (wp == NULL) return;

    то все работает правильно. В чем дело? Или я что то делаю не так?
      Да просто в каком-нибудь деструкторе класса CPaintDC происходят вызовы столь нужных функций BeginPaint да EndPaint!.. ;)
        Цитата Славян @
        Да просто в каком-нибудь деструкторе класса CPaintDC происходят вызовы столь нужных функций BeginPaint да EndPaint!.. ;)

        Но ведь речь идет о разных объектах, после первого выхода из OnPaint, перестают работать другие объекты этого класса, почему? При этом объекты других классов работают нормально.
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script Execution time: 0,0653 ]   [ 15 queries used ]   [ Generated: 22.02.20, 07:06 GMT ]