вот так я делаю
procedure Make(Handle : THandle;Vheight:integer;Vwight:integer);
var
tempBitmap: TBitmap;
tempCanvas : TCanvas;
begin
tempBitmap:= TBitmap.Create;
tempCanvas:= TCanvas.Create;
tempCanvas.Handle:= Handle;
...
end;
узнать через canvas свойства
просто моя подпрограмка должна копировать некоторую облать экрана...т.е. то на что собсна handle и указывает...а скока копировать не понятно...а передавать в подрограмму еще и размеры с пиксельным форматом не желательно....
мож есть какие-нить идейки?
ну вообще-то, ты можешь использовать не Handle контекста устройства, а указатель на канву, но если уж так сильно приспичило, то используй функцию GetDeviceCaps (справку по ней смотри в хелпе по Win32 API)
вот так я делаю
procedure Make(Handle : THandle;Vheight:integer;Vwight:integer);
var
tempBitmap: TBitmap;
tempCanvas : TCanvas;
begin
tempBitmap:= TBitmap.Create;
tempCanvas:= TCanvas.Create;
tempCanvas.Handle:= Handle;
with tempBitmap do
begin
Width := Vwight;
Height := Vheight;
PixelFormat := pf24bit;
tempbitmap.Canvas.CopyRect(rect(0,0,Width,Height), tempCanvas,rect(0,0,Width,Height));
tempbitmap.Canvas.Handle:=handle;
end;
end;
Вот хотелось бы е передавать туда габариты...
Код:
[/QUOTE]
вообще-то TCanvas.Handle - это хендл на контекст устройства (HDC), а по поводу HDC я уже сказал, что использовать можно
если у тя используется канва bmp, то используй
Код:
...
Width := tempCanvas.ClipRect.Right;
Height := tempCanvas.ClipRect.Bottom;
...
Width := tempCanvas.ClipRect.Right;
Height := tempCanvas.ClipRect.Bottom;
...
ну вообщем то я не знаю какую канву туда будут отсылать...думаю канву любого объекта имеющего канву
тогда размеры тож отсылать придёца..... канва не имеет размера как такового... )))