Конференция "WinAPI" » Как решить проблему мелькания у компонентов? (Edit) [D7, WinXP]
 
  • ratatui (19.10.09 22:29) [0]
    Добавляю окно класса Edit, при приходе сообщения о ресайзе, устанавливаю новый размер edit'а. При изменении окна edit мелькает, хотя в похожем примере на ассемблере такого нет.


    GetClientRect(Handle,Client);
         Edit := CreateWindowEx(WS_EX_CLIENTEDGE,'EDIT',nil,WS_VISIBLE or WS_CHILD or
           WS_HSCROLL or WS_VSCROLL or ES_AUTOHSCROLL or ES_AUTOVSCROLL or ES_MULTILINE+ES_NOHIDESEL,
           Client.Top,Client.Left,Client.Right,Client.Bottom,Handle,0,hInstance,nil);

  • clickmaker © (20.10.09 10:51) [1]
    см. в сторону WM_SETREDRAW или BeginDeferWindowPos. вторая полезна, если сразу несколько окон нужно ресайзить
  • guard_gg (22.10.09 06:29) [2]
    Незнаю в тему ли но используя VCL когда я сталкивался с мельканием компонентов при их перерисовке я использовал флаг DoubleBuffer = true
    что расположен в классе TAppication если я не ошибаюсь.
    Можно залезть в исходники VCL и посмотреть как реализован DoubleBuffer
  • brother © (22.10.09 06:39) [3]
    > TAppication если я не ошибаюсь.

    ошибаешься...
  • guard_gg (22.10.09 10:52) [4]
    Тогда извиняюсь бо уже 3 года кодю на С++  ^__^
  • brother © (23.10.09 04:18) [5]
    меня так и подмывает спросить: а на си, объект TAppication по-другому описан? О_о
  • guard_gg (23.10.09 10:26) [6]
    Весь буду рад ответить что в Microsoft VC++ объекта TAppication никогда не существовало, а использование бьюлдера это недалекая дорога от дельфи и паскаля. Те кто пытается заработать деньги прикладным программированием использует либо VC++ либо GNU GCC.
  • Anatoly Podgoretsky © (23.10.09 15:39) [7]
    > guard_gg  (23.10.2009 10:26:06)  [6]

    Желательно что бы таких было побольше, тогда нам больше достанется.
 
Конференция "WinAPI" » Как решить проблему мелькания у компонентов? (Edit) [D7, WinXP]
Есть новые Нет новых   [134432   +19][b:0][p:0.001]