![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Все же, как рисовать [C#, WinXP]
Галинка © (2006-12-07 11:27:00)Опять тот же вопрос. Прошу не ругаться. Как сделать "резинку" на шарпе?
clickmaker (2006-12-07 16:55:00) [1]
> [12] Галинка © (07.12.06 16:06)
> что писать собственно в
эээ... ну это как бы тебе виднее, что ты там рисовать хочешь
Мне лично треугольнички нравятся, но tastes differ, как известно
Галинка (2006-12-07 16:06:00) [2]что писать собственно в
private void Form1_Paint(object sender, PaintEventArgs e)
{
}
это же он отвечает за перерисовку, если что.
clickmaker (2006-12-07 15:58:00) [3]
> [9] Галинка © (07.12.06 15:12)
а вопрос-то в чем?
Zeqfreed (2006-12-07 15:45:00) [4]А я все думал, к чему это Майкрософт тут свою рекламу размещает. Вот уже и вопросы по шарпу пошли :)
Галинка (2006-12-07 15:12:00) [5]clickmaker © (07.12.06 14:15) [8]туда приходит какой-то пустой графикс. на котором и надо все нарисовать... котроче, вфкладываю код. Может что дельное посоветуете.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace Lines
{
public partial class Form1 : Form
{
private Point altPt, neuPt, neualtPt;
private Pen np, sp;
private Graphics gr;
public Form1()
{
InitializeComponent();
np = new Pen(Color.Blue, 3);
sp = new Pen(this.BackColor, 3);
gr = this.CreateGraphics();
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
altPt = new Point(e.X, e.Y);
neualtPt = altPt;
}
}
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
gr.DrawLine(np, altPt, neuPt);
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
}
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ControlPaint.DrawReversibleLine(PointToScreen(altPt), PointToScreen(neualtPt), this.BackColor);
neuPt = new Point(e.X, e.Y);
ControlPaint.DrawReversibleLine(PointToScreen(altPt), PointToScreen(neuPt), this.BackColor);
neualtPt = neuPt;
}
}
}
}
clickmaker (2006-12-07 14:15:00) [6]
> [4] Галинка © (07.12.06 13:47)
не надо ничего сохранять. Graphics приедет в параметре события
saxon (2006-12-07 13:58:00) [7]Да бросте, разве можно когото ругать на форуме? это-ж нонсенс какойто ;)
Галинка (2006-12-07 13:52:00) [8]Сделала. Думала, что сделала. Но эффект оказался не совсем тот, который ожидался... Не ругайте меня ((
saxon (2006-12-07 13:51:00) [9]А мне показалось Вы прошлый раз все сделали :(
http://delphimaster.ru/cgi-bin/forum.pl?id=1164214839&n=14
Галинка (2006-12-07 13:47:00) [10]clickmaker © (07.12.06 13:29) [3]
т.е. в событии Form1_Paint... знать бы еще что рисовать? Я так понимаю, мне надо как-то сохранить текущий графикс, а потом его рисовать в позицию 0,0 на контрол?
clickmaker (2006-12-07 13:29:00) [11]
> [2] Галинка © (07.12.06 13:03)
рисовать надо в событии OnPaint, а не один раз
Галинка (2006-12-07 13:03:00) [12]А можно ли как то сохранить Graphics? А то при уменьшении окна все просто трется, и при сворачивании тоже...
clickmaker (2006-12-07 12:54:00) [13]http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnaraskdr/html/askgui02172004.asp