Конференция "WinAPI" » Перерисовка консольного окна
 
  • Сергей М. © (16.02.11 10:16) [0]
    Как бы без излишних затра исхитриться-изловить сообщения, адресованные системой консольному окну при необходимости его перерисовки ?

    Полагаю, WM_PAINT система туда таки посылает как и прочим (неконсольным) окнам, только вот добраться до оконной процедуры конс.окна без извращений проблематично, если вообще возможно докум.способами.

    Потребовалось это для "изврата" - порисовать кой-чего прямо на DC конс.окна.. Все бы ничего, да вот с перерисовкой засада ..

    Подкиньте, пож., идейки ?

    p.s.
    Контраргументы вида "не занимайся хренью, создавай свое окно и рисуй в нем сколько влезет" - это несерьезно)
  • clickmaker © (16.02.11 12:05) [1]
    приходит в голову только SetWindowsHookEx с WH_CALLWNDPROCRET или WH_GETMESSAGE
  • Сергей М. © (16.02.11 12:33) [2]
    Лок.хук мне тоже в голову приходил .. пока не пробовал, думаю попроще варианты промелькнут ..

    Да и потом сомнительно - а корретно ли выполнять собственную перерисовку прямо в обработчике хука ?
  • clickmaker © (16.02.11 13:21) [3]
    > собственную перерисовку

    то есть окно своё?
  • Сергей М. © (16.02.11 15:05) [4]
    Конечно свое .. не чужое ..
  • clickmaker © (16.02.11 16:00) [5]
    и через GetConsoleWindow + подмена виндозной процедуры не получится?
  • Сергей М. © (16.02.11 16:47) [6]
    нет.
    адрес оконной процедуры в ВАП процесса находится выше $FFFF0000 - эта область недосягаема для SetWindowLong(GWL_PROC)
  • Сергей М. © (16.02.11 16:50) [7]
    Тьфу, глупость сморозил)

    Имелось ввиду что попытка SetWindowLong(GWL_PROC) для своего конс.окна (не говоря уже о чужом) приводит к отказу с кодом 5: access denied
  • Игорь Шевченко © (16.02.11 21:39) [8]
    кто же тебе в CSRSS писать позволит ?
    оконная процедура живет в consrv.dll, каковой consrv.dll kernel32.dll посылает нужные запросы.

    IPC, панимаешь...
  • Сергей М. © (16.02.11 21:53) [9]

    > Игорь Шевченко ©   (16.02.11 21:39) [8]


    Не возражаю)
    потому и интересуюсь - а есть ли обходные маневры ..
  • QAZ (17.02.11 11:34) [10]
    а нафига пытаца рисовать на консольном окне?
    есть куча примеров перехвата консольного ввода\вывода в обычном окне,а там хоть обрисуйся
  • Сергей М. © (17.02.11 11:37) [11]

    > нафига пытаца


    Такая вот нада)


    > в обычном окне


    Окно консольное, потому что приложение моё и оно консольное.
  • DiamondShark © (17.02.11 11:54) [12]

    >  потому что приложение моё и оно консольное.

    Приложение твоё, окно не твоё (и оно вообще не обязано быть).
    Можешь убицо апстену.
    Если тебе надо что-то порисовать, то создай своё окно.
    Если тебе охота почесать правое ухо левой ногой через задний проход, то ты ошибся форумом. Тебе на www.bdsmmaster.ru
  • Игорь Шевченко © (17.02.11 12:39) [13]
    Особенно забавно попытка рисования будет смотреться в полноэкранном режиме
  • Сергей М. © (17.02.11 13:44) [14]
    Игорь Шевченко ©   (17.02.11 12:39) [13]

    Заказчик так соизволил - вынь да положь ему консоль)
  • RWolf © (17.02.11 14:37) [15]
    предлагаю объяснить заказчику, что консоль не предназначена для рисования.
  • DiamondShark © (17.02.11 15:12) [16]
    А рисование тоже заказчик придумал? Так это он тебя кинуть решил, типа, задание не выполнено, все дела, денег -- фига.
  • Сергей М. © (17.02.11 20:14) [17]
    Дима, дебилушко, ты троллить не устал ?)
    Пора на покой.
    Без твоих сраных комментариев я уж как-нибудь обойдусь.
  • han_malign (18.02.11 10:52) [18]

    > Заказчик так соизволил - вынь да положь ему консоль)

    - судя по обилию графических заменителей консоли - задача ставилась не раз и таки ректально не решилась...
    http://code.google.com/p/conemu-maximus5/
    http://www.corion.net/econsole/
 
Конференция "WinAPI" » Перерисовка консольного окна
Есть новые Нет новых   [134431   +12][b:0.042][p:0.001]