Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Как вставить изображение в чужую форму.   Найти похожие ветки 

 
ROOT ©   (2006-09-25 08:59) [0]

Господа есть проблема мне необходимо вставить изображение в чужую форму например в компанент Timage


 
Сергей М. ©   (2006-09-25 09:11) [1]

Не получится.
TImage не имеет собственного окна.


 
@!!ex ©   (2006-09-25 09:16) [2]

var
Dc:HDC;
begin
DC:=GetDC(Handle);
BitBlt(DC,x,y,width,height,SRCImageDC,0,0,SRCCOPY);
end;

Где handle - Хэндл окна на котором нужно рисовать.
x,y,width,height - позиция изображения.
SRCImageDC - Девайс Контекст рисунка который нужно нарисовать.
Все.


 
Сергей М. ©   (2006-09-25 09:26) [3]


> @!!ex ©   (25.09.06 09:16) [2]


> handle - Хэндл окна на котором нужно рисовать.


У TImage нет окна.


 
@!!ex ©   (2006-09-25 09:28) [4]

Сергей М. ©   (25.09.06 09:26) [3]
Так я ни слова не говорил о TImage. :))
ПРивел пример как рисовать на окнах и все. :))
Вдруг поможет.
Тем более что из вопроса все равно не ясно, какого результата надо добится.


 
root ©   (2006-09-25 09:29) [5]

а как передать компаненнту TImage чужого окна TBitmap cо своего окна


 
root ©   (2006-09-25 09:31) [6]

точнее зная hwnd компанента чужого окна, как передать ему TBitmap


 
@!!ex ©   (2006-09-25 09:33) [7]

Не буду говорить что это не возможно.
Но если и возможно, скорее всего делается через .....


 
root ©   (2006-09-25 09:35) [8]

что? и как??


 
Сергей М. ©   (2006-09-25 09:38) [9]


> root ©   (25.09.06 09:29) [5]


> TImage чужого окна
> TBitmap cо своего окна


У окна нет ни TImage ни TBitmap


 
root ©   (2006-09-26 12:14) [10]

h := FindWindow(nil,"Форма");
 if h <> 0 then
    h1:=FindWindowEx(h,0,"TPanel",nil);
    if h1<>0 then
begin
     bit:=TBitmap.Create;
bit:=Image1.Picture.Bitmap;
DC:=GetDC(h1);
BitBlt(DC,0,1,bit.Width,bit.Height,bit.Handle,0,0,SRCCOPY);
end;

Форму и панель на форме находит а прорисовывать нехочет почему???


 
Сергей М. ©   (2006-09-26 12:32) [11]

Потому что оконная ф-ция окна h1 чихала на твои "прорисовки" - она сама этим занимается, по своему собственному алгоритму, и сама решает что и в какой момент рисовать или не рисовать на DC своего окна.


 
root ©   (2006-09-26 12:54) [12]

т.е. невозможно прорисовать через функцию h1 окна?
если возможно как это реализовать?


 
Сергей М. ©   (2006-09-26 13:24) [13]


> т.е. невозможно прорисовать через функцию h1 окна?


Кака раз "через нее" и следует рисовать.


> как это реализовать?


Внедрить во вражеское ВАП код своей оконной ф-ции для данного окна.


 
root ©   (2006-09-26 15:02) [14]

ВАП???
дай наброски как это делается?


 
@!!ex ©   (2006-09-26 15:41) [15]

Hook?


 
root ©   (2006-09-26 15:49) [16]

непонятно вот код
DC:=GetDC(0);
Ellipse(DC, 0, 0, 200, 200);
выводит элипс на рабочем столе
а вот этот код
DC:=GetDC(0);
BitBlt(DC,0,1,bit.Width,bit.Height,bit.Handle,0,0,SRCCOPY);
невыводит изображение bit.handle
почему???


 
@!!ex ©   (2006-09-27 13:54) [17]

Может потому что ему DC нужен?? :))
А не хэгдл битмапа? :))
bit.Canvas.handle ??
Хотя не факт что будет работать...


 
@!!ex ©   (2006-09-27 13:55) [18]

Вернее работать то будет... если все правильно напишеш....



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

Форум: "Начинающим";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
4-1148993366
Grihan
2006-05-30 16:49
2006.10.15
Paint 32bit bitmap as disabled


15-1158860149
Palladin
2006-09-21 21:35
2006.10.15
Опрос: Великий стеб


1-1156439374
Serega41
2006-08-24 21:09
2006.10.15
Утечки памяти в TShellComboBox


2-1159548385
ArtemESC
2006-09-29 20:46
2006.10.15
Массивы и передача параметров...


11-1135259006
DVK
2005-12-22 16:43
2006.10.15
Не могу сделать нормальный Resize на KOLListView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский