Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

интересное поведение программы

16K
08 мая 2006 года
vorobuwka
6 / / 08.05.2006
У меня такая проблема:
как курсовую пишу графический редактор на C# используя библиотеку GDI+.
для отображения рисунка использую panel. Как функцию перерисовки использую свою функцию MyPaint. Но это не суть, на самом деле, меня интересует вот что: в определенный момент, прорисовка перестает корректно работать, то есть она вызывается, программа через всю нее проходит, по сути прорисовка срабатывает, но на экране не отображается результат до тех пор, пока я не переклячусь на какую нибудь другую прогу и обратно. Я не могу понять сути: как может код на самом деле срабатывать, но не отображатся на экране?
Надеюсь, хоть кто-нибудь поймет, о чем идет речь и сможет мне чем-нибудь помочь.
273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
А какой контрол ты перерисовываешь.. вернее, перерисовку panel в обработке события Paint какого контрола делаешь?
16K
08 мая 2006 года
vorobuwka
6 / / 08.05.2006
Цитата:
Originally posted by 3A3-968M
А какой контрол ты перерисовываешь.. вернее, перерисовку panel в обработке события Paint какого контрола делаешь?



прорисовку делаю всякий раз, когда это необходимо. возьмем за пример рисование круга: в обработке события panel_MouseMove(..) всякий раз вызывается событие Paint (стирается предыдущий временный нарисованый круг) и там же рисуется новый, координаты которого зависят от текущих координат мыши. То есть по сути здесь происходит рисование временных кругов и если с прорисовкой все нормально, то на экране все время присутствует только один временный круг.
А уже в обработке события panel_MouseUp(..) происходит нарисовка окончательного круга, который рисуется непосредственно на bitmap. Надюсь, что доходчиво объяснила - получается вызываю Paint всякий раз когда надо уничтожить временные части рисунка и прорисовать заново действительный рисунок (bitmap).

273
08 мая 2006 года
3A3-968M
1.2K / / 22.12.2005
Да не в этом дело, код прорисовки на событие Paint для какого контрола написан - для panel или формы? Если прорисовываешь вообще из других событий - то это ошибка распространённая. Рисование нового круга нужно засунуть в обработчик события Paint контрола panel.
242
08 мая 2006 года
Оlga
2.2K / / 04.02.2006
например, если интересно посмотри на мои художества насчет события Paint:
http://forum.codenet.ru/showthread.php?s=&threadid=29075
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог