Компьютерная графика, мультимедиа и игры на Visual C#


         

Метод для фотографирования клиентской области


    myForm1.Show();
    //Рисуем графику на форме Form1:
    while (myForm1.Created)
    {
        myForm1.myRendering();
        Application.DoEvents();
    }
}
Листинг 44.5. Метод для фотографирования клиентской области формы.
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt(IntPtr hdcDest,
int nXDest, int nYDest, int nWidth, int nHeight,
IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private Bitmap myMemoryImage;
private void myCaptureScreen()
{
      Graphics myGraphics = this.CreateGraphics();
      Size s = this.Size;
      myMemoryImage = new Bitmap(s.Width, s.Height,
                                                 myGraphics);
      Graphics myMemoryGraphics =
      Graphics.FromImage(myMemoryImage);
      IntPtr dc0 = myGraphics.GetHdc();
      IntPtr dc1 = myMemoryGraphics.GetHdc();
      BitBlt(dc1, 0, 0, this.ClientRectangle.Width,
            this.ClientRectangle.Height,
            dc0, 0, 0, 13369376);
            myGraphics.ReleaseHdc(dc0);
            myMemoryGraphics.ReleaseHdc(dc1);
}
Если мы забыли разместить компоненты PrintDocument и PrintDialog, то размещаем их сейчас и дважды щелкаем по значку для компонента PrintDocument. Открывается файл Form1.cs с шаблоном, который после записи одной строки нашего кода (для рисования в памяти сфотографированного выше изображения) имеет такой вид.
Листинг 44.6. Код для рисования изображения в памяти компьютера.
private void printDocument1_PrintPage(object sender,
      System.Drawing.Printing.PrintPageEventArgs e)
{
      e.Graphics.DrawImage(myMemoryImage, 0, 0);
}
Теперь дважды щелкаем по кнопке Print (рис. 44.7) в режиме проектирования. Открывается файл Form1.cs с автоматически сгенерированным шаблоном обработчика щелчка по кнопке, и этот шаблон после записи нашего кода принимает такой вид.
Листинг 44.7. Код для печати изображения на принтере.
private void button1_Click(object sender, EventArgs e)

Содержание  Назад  Вперед