Конференция "Media" » Вывести текст поверх screensaver [D7, WinXP]
 
  • Polion (08.10.09 15:04) [0]
    Доброго времени суток.
    Собственно вопрос как такое сделать? Есть скринсервер флага, все красиво движется все замечательно, но необходимо поверх всей этой красоты вывести несколько строчек текста чтоб флаг вихлялся на заднем фоне.
    ЗЫ: В делфи познания начального уровня, в принципе на Canvas текст могу вывести но при смене кадров он затиратся, как сделать перерисовку без мерцания?
  • Игорь Шевченко © (08.10.09 19:22) [1]
    написать свой screensaver. screensaver запускается на отдельном десктопе, знаний на уровне "вывести текст на Canvas" для взаимодействия с имеющимся screensaver-ом явно не хватит
  • Омлет (08.10.09 19:33) [2]
    В общем случае проще свой написать.
  • Polion (09.10.09 21:17) [3]
    Дамс с моими познаниями в графики написать свой скринсейвер нереально :( что то примитивное смогу, но не развивающийся флаг
  • GDI+ (11.10.09 03:38) [4]
    1. Ставишь глобальный хук(dll загружаемые в другой процесс) SetWindowsHookEx
    WH_CALLWNDPROCRET

    2. Ждёшь в процедуре хука возвращения из WM_PAINT
    3. Определяешь из какого окна вернулась, если окно скринсейвера, то получаешь HDC окна и через DrawText или динамически созданный объект TCanvas(присвоить Handle полученный HDC) выводишь текст.

    PS
    Но всё таки проще написать свой скринсейвер, так как если там отрисовка через Direct3D, то перехват WM_Paint не поможет.
  • Polion (12.10.09 13:35) [5]
    там отрисовка через Direct3D :(. начал писать свое
 
Конференция "Media" » Вывести текст поверх screensaver [D7, WinXP]
Есть новые Нет новых   [120044   +85][b:0][p:0]