|
|
Передает указанную прямоугольную область между указанными контекстами устройств в соответствии с указанным режимом.
Синтаксис
function BitBlt(
| hdcDst, | xDst, | yDst, | wDst, | hDst, | hdcSrc, | xSrc, | ySrc, | rstOpr
| ): Boolean;
|
Параметры
|
Параметр
| Тип
| Описание
|
hdcDst
| Number
| дескриптор целевого контекста устройства
|
xDst
| Number
| x-координата левого верхнего угла целевого прямоугольника
|
yDst
| Number
| y-координата левого верхнего угла целевого прямоугольника
|
wDst
| Number
| ширина целевого прямоугольника
|
hDst
| Number
| высота целевого прямоугольника
|
hdcSrc
| Number
| дескриптор исходного контекста устройства
|
xSrc
| Number
| x-координата левого верхнего угла исходного прямоугольника
|
ySrc
| Number
| y-координата левого верхнего угла исходного прямоугольника
|
rstOpr
| Enum
| код растровой операции (см. ниже)
|
|
Параметр rstOpr
|
Значение
| Описание
|
BLACKNESS
| заполняет целевой прямоугольник, используя цвет, связанный с индексом 0 в физической палитре (этот цвет является черным для заданной по умолчанию физической палитры).
|
CAPTUREBLT
| включает любые окна, которые расположены поверх исходного окна, (по умолчанию, изображение содержит только исходное окно).
|
DSTINVERT
| инвертирует целевой прямоугольник.
|
MERGECOPY
| объединяет цвета исходного прямоугольника с кистью, выбранной в текущий момент в hdcDst, при помощи оператора AND.
|
MERGEPAINT
| объединяет цвета инвертированного исходного прямоугольника с цветами целевого прямоугольника при помощи оператора OR.
|
NOMIRRORBITMAP
| препятствует зеркалированию при передаче изображения.
|
NOTSRCCOPY
| передает инвертированное изображение.
|
NOTSRCERASE
| комбинирует цвета исходных и целевых прямоугольников при помощи оператора OR, затем инвертирует полученный цвет.
|
PATCOPY
| копирует кисть, выбранную в текущий момент в hdcDst, в целевой рисунок.
|
PATINVERT
| комбинирует цвета кисти, выбранной в текущий момент в hdcDst, с цветами целевого прямоугольника при помощи оператора XOR.
|
PATPAINT
| комбинирует цвета кисти, выбранной в текущий момент в hdcDst, с цветами инвертированного исходного прямоугольника при помощи оператора OR. Результаты этой операции объединяются с цветами целевого прямоугольника при помощи оператора OR.
|
SRCAND
| комбинирует цвета исходных и целевых прямоугольников при помощи оператора AND.
|
SRCCOPY
| копирует исходный прямоугольник непосредственно в целевой прямоугольник.
|
SRCERASE
| комбинирует инвертированные цвета целевого прямоугольника с цветами исходного прямоугольника при помощи оператора AND.
|
SRCINVERT
| комбинирует цвета исходного и целевого прямоугольников при помощи оператора XOR.
|
SRCPAINT
| комбинирует цвета исходного и целевого прямоугольников при помощи оператора OR.
|
WHITENESS
| заполняет целевой прямоугольник, используя цвет, связанный с индексом 1 в физической палитре (этот цвет является белым для заданной по умолчанию физической палитры).
|
|
Возвращаемое значение
true в случае успеха или false в противном случае.
var crc_dx=15,crc_dy=15;
// Главная форма frm=new TForm(); frm.Caption="JS+ - функция WinAPI BitBlt";
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=" Нажмите кнопку Фото";
// Панель pnl=new TPanel(frm); pnl.BorderStyle=bsSingle; pnl.ClientWidth =crc_dx*35+2; pnl.ClientHeight=crc_dy*22+2; pnl.Color=clWhite;
// Подогнать размер формы под размер панели frm.ClientWidth =pnl.Width; frm.ClientHeight=pnl.Height+stb.Height;
// Изображение img=new TImage(pnl); img.SetBounds(1,1,pnl.ClientWidth-2,pnl.ClientHeight-2); img_cnv=img.Canvas; img_cnv.Brush.Color=pnl.Color; img_cnv.FillRect(img_cnv.ClipRect);
// Кнопка btn=new TButton(frm); btn.Caption="Фото"; btn.Left=frm.ClientWidth-btn.Width-crc_dx; btn.Top =frm.ClientHeight-stb.Height-btn.Height-crc_dy; btn.Hint="Сделать фото"; btn.ShowHint=true; btn.OnClick=btn_Click;
// Таймер tmr=new TTimer(frm); tmr.Interval=20; tmr.Enabled=true; tmr.OnTimer=tmr_Timer;
frm.ShowModal();
// Обработчик события OnClick function btn_Click(btn) { var dx,dy;
// Форма для фото pht_frm=new TForm(); pht_frm.Caption="Фото"; pht_frm.Position=poDesigned; pht_frm.Left=frm.Left+50; pht_frm.Top =frm.Top +80; pht_frm.ClientWidth =dx=img.Width; pht_frm.ClientHeight=dy=img.Height;
pht_img=new TImage(pht_frm); pht_img.Align=alClient; pht_cnv=pht_img.Canvas;
BitBlt(pht_cnv.Handle,0,0,dx,dy,img_cnv.Handle,0,0,SRCCOPY);
pht_frm.ShowModal(); }
// Обработчик события OnTimer function tmr_Timer(tmr) { var clr,rct=img_cnv.ClipRect; var x=Math.round((rct.Width() *Math.random())/crc_dx); var y=Math.round((rct.Height()*Math.random())/crc_dy);
switch (Math.round(5.5*Math.random())) { case 3 : clr=clRed; break; case 4 : clr=clGreen; break; case 5 : clr=clBlue; break; default: clr=pnl.Color; }
x*=crc_dx; y*=crc_dy; img_cnv.Pen.Color=img_cnv.Brush.Color=clr; img_cnv.Ellipse(x,y,x+crc_dx,y+crc_dy); }
|
Совместимость
Windows API
|
JS+ | Руководство пользователя
|
|
|
|
|
|