Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Дисциплины:
2017-05-23 | 274 |
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!