Форум Команды NeTTeam
http://vbnet.flybb.ru/

вопрос по CreateGraphics
http://vbnet.flybb.ru/topic73.html
Страница 1 из 2

Автор:  krewin [ 15-08, 10:49 ]
Заголовок сообщения:  вопрос по CreateGraphics

Раньше когда я писал программы на VB6 у меня этой проблемы не было. Но теперь в Microsoft Visual Studio 2005 у меня проблема, простейшее занчение PictureBox1.CreateGraphics.DrawLine(Pens.Aqua, 10, 200, 10, 300) не появляется в пик боксе. Если оно загружается с формой. Если поле загрузке, то линия появляется, но если убрать форму за экран то она пропадает. Как быть если надо, начернить графику только после загрузки формы и после этого её двигать нельзя, а то можно потерять изо..

Автор:  vbnet [ 16-08, 09:10 ]
Заголовок сообщения: 

Как я понял при загрузке формы линия не появляется. А если после загрузки,например добавив код в кнопку то при нажатии появляется?

А вам надо начертить графику после загрузки формы????
Так плохо написано я не уловил суть.

P.S
Цитата:
Если поле загрузке

Имеется в виду после загрузки или всетаки поле?

Автор:  Гость [ 16-08, 10:23 ]
Заголовок сообщения: 

но беда заключается в том что ели завести за экран или даже на этот рисунок навести любую форму он проподает. ВОТ

Автор:  vbnet [ 16-08, 11:04 ]
Заголовок сообщения: 

А для какой цели тебе это надо.Может для конкретного случая будет конкретное решение.

Автор:  Гость [ 19-08, 14:10 ]
Заголовок сообщения: 

http://forum.vingrad.ru/forum/topic-145 ... index.html
вот нашел тему на эту тему :) Просмотрите может пригадится.

Автор:  vbnet [ 19-08, 15:52 ]
Заголовок сообщения: 

Спасибо тебе. Только если ты зарегистрирован то входи от своего имени а то и + поставить некому :-))).

Автор:  Гость [ 22-08, 11:12 ]
Заголовок сообщения: 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim g As Graphics = PictureBox1.CreateGraphics
' Для рисования мы используем объект Pen размера 1 пиксель чёрного цвета
Dim blackPen As New Pen(Color.Black, 1)
' Далее, мы должны задать координаты линии
Dim x1 As Single = 100
Dim y1 As Single = 50
Dim x2 As Single = 200
Dim y2 As Single = 550
' Рисуем линию!
g.DrawLine(blackPen, x1, y1, x2, y2)
'Неработает :( Опустив форму вниз экрана линия проподает
End Sub

Мне надо запускать с кнопки !!! Как занести в палитру ????

Требуется замутить программу в которой при нажатие кнопки отображался текст PictureBox1

Автор:  SAS [ 23-08, 23:38 ]
Заголовок сообщения: 

Там же, по ссылке написано - что нужно добавлять графику в обработчике события Paint.
Для того чтобы отрисовка происходила при нажатии на кнопку нужно, на мой взгляд:
1. Завести глобальную переменную типа интегер, которая показывала бы какой вид графики нужно нарисовать (допустим 0 - нет графики, потому что кнопка не была нажата, 1- была нажата кнопка 1,нужно нарисовать зеленую линию 2см, и еще кружок красный чтоб ее пересекал, 2- нужно нарисовать другую и т.д.). Если вид отображаемой графики один, то достаточно булеановой переменной, которая показывает была ли нажата кнопка или нет.
2. При нажатии кнопки устанавливать соответствующее значение глобальной переменной и переход в подпрограмму, которая рисует
3. В событии Paint твоей PictureBox нужно просто втупую сделать перенаправление на ту процедуру, которая рисует, проверив не равна ли нулю или false переменная, показывающая тип графики и была ли нажата кнопка
4. В процедуре рисования выбираешь и рисуешь в зависимости от значения переменной нужный вид линий



В VB6 происходило кстати то же самое, просто незаметно для программиста VB. но там для того, чтобы избежать перерисовки нужно было достаточно свойство формы AutoRedraw в True. В NET другая архитектура, которая несмотря на кажущуюся сложность является более гибкой и позволяет делать более интересные вещи.

Автор:  Byte [ 24-08, 19:09 ]
Заголовок сообщения: 

SAS, ага, а гораздо проще написать функцию или процедуру эмулирующую эллементы процедуры Paint.

Автор:  SAS [ 25-08, 04:27 ]
Заголовок сообщения: 

это кому как) и зависит от задачи)

Автор:  Byte [ 25-08, 08:24 ]
Заголовок сообщения: 

согласен. но вот запланированную графику, тоесть нажал на кнопку появилась линия из точки "а" в точку "б", лучше делать заготовленными функциями.
представь, что ты в самом конце проекта решил сделать анимированную заставку, такой аля эллемент дизайн, а если Paint напичкана разной ерундой, то она будет сильно мешать. я просто сталкивался с этим не раз...

Автор:  Гость [ 26-08, 01:19 ]
Заголовок сообщения: 

А зачем все в паинт писать? можно отдельный класс сделать, к которому обращаться из обработки события паинта, в классе набор функций для обработки. Или непосредственно обработку по хэндлу туда передавать.
В общем это уже что то типа священных войн о методах программирования получается))). Думаю, krewin достаточно той информации, что в .Net нужно заставлять перерисовывать графику при каждом паинте. Дальше думаю разберется).

Да, насчет анимированной заставки честно говоря не понимаю сложностей. Анимировать программно, на мой взгляд немного некрасиво. Лучше уж авишник сделать и вставить его на форму)

Автор:  Byte [ 26-08, 10:19 ]
Заголовок сообщения: 

Цитата:
А зачем все в паинт писать? можно отдельный класс сделать, к которому обращаться из обработки события паинта, в классе набор функций для обработки. Или непосредственно обработку по хэндлу туда передавать.
В общем это уже что то типа священных войн о методах программирования получается))). Думаю, krewin достаточно той информации, что в .Net нужно заставлять перерисовывать графику при каждом паинте. Дальше думаю разберется).

Да, это мы тут чего-то лишнего уже намутили :)
Цитата:
Да, насчет анимированной заставки честно говоря не понимаю сложностей. Анимировать программно, на мой взгляд немного некрасиво. Лучше уж авишник сделать и вставить его на форму)

Ну программно - неочень - получается что-то вроде заставки при победе в пасянсе "паук".
А на чём это можно сделать? Есть проги для этого? Если анимировать ави в виндус мов мейкер, то куча места занимать будет...

Автор:  vbnet [ 26-08, 15:20 ]
Заголовок сообщения: 

Зачем в мов мейкер.
Все видели логотип вверху страницы? так вот он сделан в Cinema 4D
Сначало делалась модель а потом ее крутили и фоткали.
Там можно целые мультфильмы делать.
Можно такую заставку заделать и в любой формат (от Gif до Avi)
Самое трудно сделать модель. Вот вам и аниме...


P.S Cinema 4D - почти тоже что и 3DMax только легче в освоении.

Автор:  Byte [ 27-08, 14:02 ]
Заголовок сообщения: 

а сколько Cinema 4D весит? реально выложить?

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/