Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Интересное:
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2017-05-23 | 245 |
5.00
из
|
Заказать работу |
|
|
Листинг 6.1. Код для рисования прямоугольника.
private void Form1_Paint(object sender, PaintEventArgs e)
{
//Задаем цвет и толщину пера:
Pen myPen1 = new Pen(Color.Black, 3);
//Объявляем объект myRectangle и создаем экземпляр этого объекта:
Rectangle myRectangle = new Rectangle(10, 15, 150, 200);
//Рисуем фигуру:
e.Graphics.DrawRectangle(myPen1, myRectangle);
//Высвобождаем память, выделенную объекту myPen1:
myPen1.Dispose();
}
Листинг 6.2. Код для рисования кривых линий.
private void Form1_Paint(object sender, PaintEventArgs e)
{
//Задаем цвет и толщину перьев:
Pen myPen1 = new Pen(Color.Black, 3);
Pen myPen2 = new Pen(Color.Black, 1);
//Объявляем объекты и создаем экземпляры этих объектов:
Point myPoint1 = new Point(50, 50);
Point myPoint2 = new Point(100, 25);
Point myPoint3 = new Point(200, 5);
Point myPoint4 = new Point(275, 50);
Point myPoint5 = new Point(300, 150);
Point myPoint6 = new Point(350, 200);
Point myPoint7 = new Point(250, 250);
Point[] myCurvePoints =
{
myPoint1,
myPoint2,
myPoint3,
myPoint4,
myPoint5,
myPoint6,
myPoint7
};
//Рисуем линии:
e.Graphics.DrawLines(myPen1, myCurvePoints);
e.Graphics.DrawClosedCurve(myPen2, myCurvePoints);
//Высвобождаем память от перьев myPen1, myPen2:
myPen1.Dispose();
myPen2.Dispose();
}
Листинг 6.3. Метод для фотографирования клиентской области формы.
[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);
}
Листинг 6.4. Код для рисования изображения.
private void printDocument1_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(myMemoryImage, 0, 0);
}
Теперь дважды щелкаем по кнопке Print (рис. 6.1) в режиме проектирования. Открывается файл Form1.cs с шаблоном, в который записываем сначала одну строку для вызова приведенного выше метода:
|
myCaptureScreen();
а затем записываем код для кнопки из приведенного выше параграфа “Методика печати изображения на принтере”.
Листинг 6.5. Метод для фотографирования элемента управления PictureBox.
[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 = pictureBox1.CreateGraphics();
myMemoryImage = new Bitmap(
pictureBox1.Width,
pictureBox1.Height, myGraphics);
Graphics myMemoryGraphics =
Graphics.FromImage(myMemoryImage);
IntPtr dc0 = myGraphics.GetHdc();
IntPtr dc1 = myMemoryGraphics.GetHdc();
BitBlt(dc1, 0, 0, pictureBox1.ClientRectangle.Width,
pictureBox1.ClientRectangle.Height,
dc0, 0, 0, 13369376);
myGraphics.ReleaseHdc(dc0);
myMemoryGraphics.ReleaseHdc(dc1);
}
Глава 7. Рисование заполненных фигур и печать всей формы с предварительным просмотром
Листинг 7.1. Код для рисования прямоугольника.
private void Form1_Paint(object sender, PaintEventArgs e)
{
//Задаем тип и цвет кисти:
SolidBrush myBrush =
new SolidBrush(System.Drawing.Color.Black);
//Объявляем объект myRectangle и создаем экземпляр этого объекта:
Rectangle myRectangle = new Rectangle(10, 15, 150, 200);
//Рисуем и заполняем фигуру:
e.Graphics.FillRectangle(myBrush, myRectangle);
//Высвобождаем память, выделенную объекту myBrush:
myBrush.Dispose();
}
В этом же шаблоне комментируем одну строку для заполнения прямоугольника и записываем другую строку для заполнения эллипса (вписанного в прямоугольник).
Листинг 7.2. Строка для рисования эллипса.
e.Graphics.FillEllipse(myBrush, myRectangle);
Листинг 7.3. Вызов методов для захвата изображения и вывода Print preview.
private void button1_Click(object sender, EventArgs e)
{
//Захватываем изображение:
myCaptureScreen();
//Выводим панель Print preview:
printPreviewDialog1.Show();
}
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!