Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
RE: Не понял: растровый или векторный? 28.12.07 09:27 Число просмотров: 3502
Автор: Ксю Статус: Незарегистрированный пользователь
|
> Если растровый, то творишь Compatible DC и в него > открываешь файл, а там все через Get и Set Picsell. Если > векторный, то проще всего - WMF.
Растровый.
Только файл мне открывать изначально не надо... А просто нарисовать.. ручками.. мышкой...
..Что-то вроде как на С++:
void CDrow_dvView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_x=point.x; m_y=point.y;
SetCapture();
l= new LINE;
l->blue=b; l->green=g; l->red=r; l->tol=t;
(l->a).Add(point);
//CView::OnLButtonDown(nFlags, point);
}
void CDrow_dvView::OnLButtonUp(UINT nFlags, CPoint point)
{
if(GetCapture()==this)
{
CDrow_dvDoc* pDoc = GetDocument();
CTypedPtrList<CObList,LINE*>* picture=&(pDoc->picture);
CClientDC dc(this);
(l->a).Add(point);
picture->AddTail(l);
CPen* old=dc.SelectObject(myPen);
dc.MoveTo(m_x,m_y);
dc.LineTo(point);
//change_flag=1;
ReleaseCapture();
}
//CView::OnLButtonUp(nFlags, point);
}
void CDrow_dvView::OnMouseMove(UINT nFlags, CPoint point)
{
if(GetCapture()==this)
{
CClientDC dc(this);
CPen* old=dc.SelectObject(myPen);
dc.MoveTo(m_x,m_y);
dc.LineTo(point);
dc.SelectObject(old);
m_x=point.x; m_y=point.y;
//change_flag=1;
(l->a).Add(point);
}
//CView::OnMouseMove(nFlags, point);
}
|
<programming>
|
[Net] помогите с простейшим графическим редактором на С#.. 28.12.07 00:35
Автор: Ксю Статус: Незарегистрированный пользователь
|
Задание:
Создать в С# простейший графический редактор: рисовниае мышкой (кнопочка зажата - рисует, кнопочку отпустили - прекратили ), потом сохранять и загружать данные с помощью xml из файлов..
Собственно, мой вопрос:
Предположим, с XML я разберусь...
Вопрос в том, как организовать хранение списка линий (или точек? как лучше хранить информацию?), как их рисовать (поподробнее бы про функцию Paint узнать...)
Была идея хранить точки в массиве (пусть пока и с ограниченным количеством), но затея удачно провалилась, так как все-таки неудобно...
Теперь идея хранить линии в виде списка. В С++ как список сделать знаю, а вот в С#... Не подскажете???
..Если есть что-то похожее, уже готовая программа (рисующее приложение), с удовольствием поразбираюсь в коде самостоятельно (и все касательно xml сама сделаю) =)
Заранее спасибо!!!
П.С. Желательно срочно помочь бедной девушке (у которой завтра зачет, а опозорится перед любимым преподователем не хочется)
|
|
Не понял: растровый или векторный? 28.12.07 05:54
Автор: Zef <Alloo Zef> Статус: Elderman
|
Если растровый, то творишь Compatible DC и в него открываешь файл, а там все через Get и Set Picsell. Если векторный, то проще всего - WMF.
|
| |
RE: Не понял: растровый или векторный? 28.12.07 09:27
Автор: Ксю Статус: Незарегистрированный пользователь
|
> Если растровый, то творишь Compatible DC и в него > открываешь файл, а там все через Get и Set Picsell. Если > векторный, то проще всего - WMF.
Растровый.
Только файл мне открывать изначально не надо... А просто нарисовать.. ручками.. мышкой...
..Что-то вроде как на С++:
void CDrow_dvView::OnLButtonDown(UINT nFlags, CPoint point)
{
m_x=point.x; m_y=point.y;
SetCapture();
l= new LINE;
l->blue=b; l->green=g; l->red=r; l->tol=t;
(l->a).Add(point);
//CView::OnLButtonDown(nFlags, point);
}
void CDrow_dvView::OnLButtonUp(UINT nFlags, CPoint point)
{
if(GetCapture()==this)
{
CDrow_dvDoc* pDoc = GetDocument();
CTypedPtrList<CObList,LINE*>* picture=&(pDoc->picture);
CClientDC dc(this);
(l->a).Add(point);
picture->AddTail(l);
CPen* old=dc.SelectObject(myPen);
dc.MoveTo(m_x,m_y);
dc.LineTo(point);
//change_flag=1;
ReleaseCapture();
}
//CView::OnLButtonUp(nFlags, point);
}
void CDrow_dvView::OnMouseMove(UINT nFlags, CPoint point)
{
if(GetCapture()==this)
{
CClientDC dc(this);
CPen* old=dc.SelectObject(myPen);
dc.MoveTo(m_x,m_y);
dc.LineTo(point);
dc.SelectObject(old);
m_x=point.x; m_y=point.y;
//change_flag=1;
(l->a).Add(point);
}
//CView::OnMouseMove(nFlags, point);
}
|
| | |
WMF-ник, тогда подходит идеально. 29.12.07 07:52
Автор: Zef <Alloo Zef> Статус: Elderman
|
Создаешь WMF-файл, отображаешь его в окно и в нем стандартными командами WMF рисуешь.
|
|
|