Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.02.14;
Скачать: 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 вся ветка

Текущий архив: 2010.02.14;
Скачать: CL | DM;

Наверх




Память: 0.44 MB
Время: 0.004 c
2-1260867479
noob_one
2009-12-15 11:57
2010.02.14
Как программно скопировать все данные из DBGridEh в буфер обмена?


15-1260141298
Kerk
2009-12-07 02:14
2010.02.14
Грамотность


1-1237817783
Дмитрий Белькевич
2009-03-23 17:16
2010.02.14
SHBrowseForFolder открывается пустым


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


2-1260911668
Лёша
2009-12-16 00:14
2010.02.14
Диалог выбора директории.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский