BitBlt : Windows API « Windows « C# / C Sharp


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

public class Form1 : Form {
    const int SRCCOPY = 0xcc0020;

    private static extern int BitBlt(
      IntPtr hdcDest,     // handle to destination DC (device context)
      int nXDest,         // x-coord of destination upper-left corner
      int nYDest,         // y-coord of destination upper-left corner
      int nWidth,         // width of destination rectangle
      int nHeight,        // height of destination rectangle
      IntPtr hdcSrc,      // handle to source DC
      int nXSrc,          // x-coordinate of source upper-left corner
      int nYSrc,          // y-coordinate of source upper-left corner
      System.Int32 dwRop  // raster operation code

    public Form1() {

    private void Form1_Paint(object sender, PaintEventArgs e) {
        Graphics g = e.Graphics;
        g.FillRectangle(Brushes.White, ClientRectangle);
        g.DrawRectangle(Pens.Black, 10, 10, 40, 40);
        IntPtr dc = g.GetHdc();
        BitBlt(dc, 70, 0, 60, 60, dc, 0, 0, SRCCOPY);
    private void InitializeComponent() {
        this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(292, 268);
        this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);
    static void Main() {
        Application.Run(new Form1());


Related examples in the same category

1.DLL: GetVersionEx
2.Keyboard timer: GetTickCountKeyboard timer: GetTickCount
3.Get the Total Free Space on a Drive by using kernel32.dll
4.imports three functions to display the vertical and horizontal size of the screen.
5.MessageBox from user32.dll
6.Get OS Version from kernel32.dll
7.imports the printf function
8.import CreateDirectory and FormatMessage
9.marshals string for unmanaged memory as ANSI.
10.imports the GetModuleHandleW function specifically
11.Set mouse and keyboard hooks.
12.Sound Utils
13.Returns the HRESULT associated with the given error code.