Dot Net Vc ++ отменить отрисовку - PullRequest
0 голосов
/ 24 марта 2011

В моем приложении я рисую линию на картинке изображения. Я хочу отменить или стереть последнюю нарисованную линию. Как мы можем это сделать?

Мне удалось отменить последнюю нарисованную линию, используя словарную коллекцию, а затем нарисовать нужные мне линии.

Моя проблема сейчас, когда я впервые загружаю приложение, я хочу, чтобы линии были нарисованы. Я могу сделать это, используя событие PictureBox_Paint, но в этом случае линии рисуются только тогда, когда Graphics создается с помощью e-> Graphics, если я использую pictureBox-> CreateGraphcics () для рисования линии, линии не рисуются. Почему e-> graphics и picturebOx-> CraeteGraphics () отличаются? Какую другую функцию я могу записать для рисования линий при загрузке формы?

1 Ответ

1 голос
/ 24 марта 2011

Как вы рисуете линию?GDI - это API непосредственного режима, отмена которого невозможна.Вам нужно будет либо сохранить растровое изображение до строки в памяти или на диске, чтобы вы могли восстановить ее, либо вам нужно написать собственный API рисования (на основе GDI, если хотите), чтобы вы могли повторить всерисование шагов до линии, или вы можете использовать режим пера GDI, который инвертирует цвет пикселя.Тогда, если вы снова проведете ту же линию, это фактически отменит изменения.Это, однако, невозможно в GDI + (как используется в winforms) и также не допускает сглаживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...