Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Все же, как рисовать [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо