| 
|  |  | 
| 
|  |  | Передает указанную прямоугольную область между указанными контекстами устройств в соответствии с указанным режимом. 
Синтаксис
| 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+ | Руководство пользователя |  |  |  |  |  |  |