Увеличение всего экрана

Тема в разделе "WASM.WIN32", создана пользователем Sharp, 17 июн 2006.

  1. Sharp

    Sharp New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    143
    Адрес:
    Ukraine
    Обычные экранные лупы создают окно и на него StretchBltят кусок экрана вокруг указателя мыши или курсора. Я хочу сделать необычную, которая бы использовала для отображения весь экран. Для статичного изображения это очень просто - достаточно отStretchBltить GetWindowDC(GetDesktopWindow()) на него самого.

    Как быть, если я хочу работать с увеличенным экраном (который будет прокручиваться при движении мыши), нажимать кнопки и т.п., чтобы это не приводило к артефактам? Можно ли как-нибудь перенаправить вывод графической подсистемы на заданный DC (или как-нибудь через winsta?), а самому монопольно работать с GetWindowDC(GetDesktopWindow())?

    Я встречал похожую программу Pivot - она способна поворачивать экран и с ним можно работать в перевернутом состоянии. Она использует драйвер - обязательно ли это для моей задачи? Если да, то подскажите ключевые слова для поиска.
     
  2. mix_mix

    mix_mix Михаил

    Публикаций:
    0
    Регистрация:
    8 окт 2005
    Сообщения:
    277
    Адрес:
    Токио
    Попробуй посмотреть исходники никсовского KDE - там это воплощено в жизнь.
     
  3. Sharp

    Sharp New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    143
    Адрес:
    Ukraine
    Основная проблема не с увеличением, а с отрисовкой, полагаю, что для иксов и WinAPI требуемые действия сильно отличаются.
     
  4. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    Ты хочешь именно на десктоп и рисовать?
     
  5. Sharp

    Sharp New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2003
    Сообщения:
    143
    Адрес:
    Ukraine
    Да, но, может, есть другие способы реализации?
     
  6. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    По идее прийдётся ловить весь инпут и перенаправлять всё нужному окну...плюс корректировка на масштаб, плюс перерисовка, поэтому, мне кажется, лучше своё окно, поверх всех...но, артефакт, мигание текстового курсора...И перерисовка на весь экран может давать тормоза...

    А вот драйвер мне кажется идея по лучше...

    Но я в них, с применением в этой области, не копался...
     
  7. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
  8. cmd_prompt

    cmd_prompt New Member

    Публикаций:
    0
    Регистрация:
    19 июн 2006
    Сообщения:
    28
    Адрес:
    Ukraine, Donetsk
    Я не уверен, а что если перехватывать оконную процедуру окон верхнего уровня, а именно сообщение WM_PAINT и заменять в ней hDC на свой hMemDC?