Что выбрать GDI vs DirectX vs OpenGL?

Тема в разделе "WASM.GRAPHICS", создана пользователем b0oh, 28 май 2007.

  1. CnCVK

    CnCVK New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2006
    Сообщения:
    108
    А еще есть такой стиль окна: WS_EX_COMPOSITED
    Работает начиная с WinXP.
    Устраняет любые блики :)
    Правда после этого кнопки закрытия/сворачивания окна перестают подсвечиваться при наведении курсора:dntknw:
    и проблемы с tooltipами.
     
  2. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    asmfan
    Просто в дополнение к старой теме хочу сказать, что действительно можно создать пустой обрабочик WM_ERASEBKGND и окно не будет мерцать при перемещении или ресайзе, но если окно опустить за пределы рабочего стола(например наполовину опустить за Taskbar). то при поднятии оно не перерисуется и будет икажённым, следовательно этот метож подходит только для полноэкранных приложений.
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    Можно попробовать
    Ну или же вызывать обработчик WM_PAINT по WM_ERASEBKGND.
     
  4. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    В аттаче примеры на GDI+
    gdi1.exe - WM_ERASEBKGND=WM_PAINT
    gdi2.exe - case WM_ERASEBKGND: InvalidateRect(.....)
     
  5. tinok

    tinok New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2007
    Сообщения:
    26
    _DEN_
    Если в классе окна задать стили "CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNCLIENT", то все рисуется и с помощью WM_PAINT (на обработку WM_ERASEBKGND нужно вернуть 1).
    Кроме того, в WM_PAINT с помощью BeginPaint можно получить выводимый квадрат и копировать только его.
    Проверено на XP - работает 100%.