Вниз
Скачать: CL | DM;

TWinControl.PaintTo() и т.п.   Найти похожие ветки 

 
StriderMan   (2009-03-25 14:58) [0]

Задача: Есть TWinControl , у которого нет парента, просто болтается в памяти. Нужно отрисовать его в нужной канве на нужном месте.

Пробовал тупо .PaintTo(). Получаю Control "" has no parent window, что вобщем-то логично.

Далее вместо WinControl"а заюзал невидимый TForm - ошибок нет, но рисует пустоту, пока форма невидима, а мне показывать ее никак не надо.

Далее пробовал решить проблему при помощи BitBlt:
 wdc := GetWindowDC(fLayer.Handle);
 try
   Canvas.Lock;
   try
     BitBlt(Canvas.Handle, 0, 0, Width, Height, wdc, 0, 0, SRCCOPY);
   finally
     Canvas.Unlock;
   end;
 finally
   ReleaseDC(fLayer.Handle, wdc);
 end;


опять же отрисовывается нормально только если форма видима, при этом в копируемый прямоугольник захватываются другие формы, частично или полностью перекрывающие нашу формочку. Т.е. получается снимок области экрана как его видит пользователь.

что можно еще попробовать?


 
Cobalt ©   (2009-03-25 22:37) [1]

А если на время отрисовки ему устанавливать parent - какой будет эффект?


 
ЮЮ ©   (2009-03-26 09:18) [2]


> А если на время отрисовки ему устанавливать parent - какой
> будет эффект?


Тогда он сам отрисуется, а автору это не нужно :)


 
StriderMan   (2009-03-26 15:08) [3]


> А если на время отрисовки ему устанавливать parent - какой будет эффект?

мигнет и пропадет, когда парента отберем.

решил проблему так: Нашел им парента в виде панельки, сныканой под всеми так, что ее не видно. Знатный бутерброд получился, но работает нормально :)

ЗЫ: не подумайте, что я извращенец, я редактор форм доделываю :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.018 c
15-1259621251
Германн
2009-12-01 01:47
2010.02.14
А есть ли тут "Мастера ПИД регуляторов"?


1-1222968605
wipr
2008-10-02 21:30
2010.02.14
подскажите как работать с автоматизацией OpenOffice


2-1260903513
ВадимММ
2009-12-15 21:58
2010.02.14
bmp не сделать


4-1229006142
ZiZiTop
2008-12-11 17:35
2010.02.14
Как разговаритвать со звуковой под WinNT


15-1260203381
БарЛог
2009-12-07 19:29
2010.02.14
В Китае задержали водителя с картоном вместо лобового стекла :)




   Наверх