Резиновая Зина или рамка для выделения в .NET Framework


5 0

Существует множество различных типов приложений, где используется резиновая прямоугольная рамка для выделения, которая рисуется, пока мы тянем мышкой, удерживая нажатой клавишу. Такое часто можно увидеть в графических приложениях, при выделении областей, при рисовании прямоугольников/кругов или других фигур, а так же при перемещении каких-то объектов или изменении их размеров. Как можно реализовать это в своих приложениях? В этой статье я покажу современный метод.

Для рисования рамки можно использовать старые функции с операциями растеризации, такие как XOR. Растеризация специфична для старого графического интерфейса GDI и отсутствует в новой реализации GDI+. Раньше, мы должны были рисовать прямоугольник, используя включенный режим растеризации ROP2_XORPEN. Чтобы стереть рамку, не нужно перерисовывать всю сцену, достаточно еще раз нарисовать рамку, и она исчезнет.

Читать статью полностью на Hackish Code: Резиновая Зина или рамка для выделения в .NET Framework. В статье показан пример рисования на C#.


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Сергей

30 Сентября 2008

Михаил, а зачем ты постоянно делаешь ссылки на Насkishcоde? Или уже писать не о чем? Тут кто то говорил, что ты этим раскручиваешь сайт, а ты сказал что это не так. А мне кажется что именно так. Извини, но поначалу у тебя заметки были интересны, например "Весенняя конференция от МS". Вот это интересная живая заметка. А сейчас только одни переходы по ссылкам. И еще: жаль, но ты Миша, с приходом все большей популярностью стал не таким отзывчивым, не таким как был совсем недавно. Твои статьи очень интересно читать, но ты меняешься в худшую сторону, ты не замечаешь этого, но это так.


Михаил Фленов

01 Октября 2008

1. Я могу здесь миллион ссылок поставить на HackishCode и от этого он раскрученнее не станет. Я просто информирую о том, что выложил на другом сайте, опять же, своем. Кому интересно, смотрит, кому не интересно, пропускает.

2. Популярность ко мне не приходит, она падает и слава богу. Я уже писал, что она мне не нужна и абсолютно ничего не даст.

3. Я стал не отзывчивым? В чем это выражается? Я стал отвечать на почту намного быстрее. Если раньше месяцами не отвечал, то сейчас благодаря падению моей популярности я получаю меньше писем и могу отвечать быстрее и отвечаю всем. По возможности стараюсь помочь, хотя мне это абсолютно не нужно. И на блоге отвечаю всем, если вопросы адекватные, а они в последнее время почти все адекватные и даже критика адекватная.

4. Вот я не вижу, где я меняюсь. Давай посмотрим на последние посты на блоге:

- Stack Overflow - вполне живая заметка о моем мнении о сайте. Ссылка на внешний сайт есть, но не мой, мне нет смысла его продвигать.
- Яблочный прорыв - вполне живая заметка и без ссылок
- User Account Control на страже системы - вполне живая статья и без ссылок
- История одного интервью - еще более живая заметка и абсолютно без ссылок
- Google – «империя зла» - одна ссылка есть, но сайт не мой и я его не продвигаю. Я даже теги не поставил, чтобы не рекламировать :). Но считаю, что заметка вполне живая, и абсолютно не рекламная.
- Производители боятся Linux - не вижу ни единой ссылки, а вижу вполне живое общение

Вот сейчас на главной странице из 10 заметок только одна касается Hackish Code. Сегодня будет еще одна, но мне нужна будет ваша помощь. Если не хочешь помогать, то просто пропусти заметку и все.

Последняя ссылка на HackishCode была 23-го числа и то, со скринами Windows 7, просто не увидел смысла выкладывать и там и там, поэтому в одном месте выложил, в другом дал ссылку.

Нереально писать все время идеально. Я пишу о том, что болит и количество живых заметок не уменьшилось, а наоборот увеличилось (на мой взгляд). Если ты не видишь ничего для себя интересного, это просто значит, что в моей жизни не происходит ничего такого, что зацепило бы тебя, а я каким был, таким и остался. А может просто ты вырос и тебе неинтересно читать меня? Вот скоро будет осенняя конференция MS и я планирую там побывать и ты увидишь заметку и о ней.


Сергей

01 Октября 2008

от скоро будет осенняя конференция MS и я планирую там побывать и ты увидишь заметку и о ней.


Вот такую заметку прочитаю с удовольствием.

По возможности стараюсь помочь, хотя мне это абсолютно не нужно. И на блоге отвечаю всем, если вопросы адекватные, а они в последнее время почти все адекватные и даже критика адекватная.


А вот здесь я увидел немного другое: тут кто-то задал тебе вопрос по жесткому диску, а ты сообщение сражу же удалил и даже, судя по тому как ты ответил, ты прочитал его невнимательно и попросил не офтопить. Помнится, раньше ты был более отзывчивым.

Если говорить про VR, то тут мне не в чем тебя упрекнуть, так как ты им уже не занимаешься. Но многие на форумах ведут себя как бюрократы: ну подумаешь если кто-то невнимательно прочитал правила и написал свой вопрос не в той теме, так не надо же его пинать. Не такая уж большая беда. Это не к Михаилу относится, а к тем, кто читает VR и мой коммент. Михаил уже призывал к взаимной вежливости, и на VR нужно тоже так видимо сделать.


Михаил Фленов

01 Октября 2008

2Сергей
Твое сообщение пришлось пересоздать, потому что ты ошибся в тегах комментирования. Ты хорошую вспомнил историю. Напоминаю, что я ответил человеку и удалил его вопрос только после того, как убедился, что он прочел. Последний свой ответ я не удалил, потому что не знаю, прочли его или нет и на сколько он помог. И оно так и висит не смотря на офтоп.

Если парень обратится по почте, то отвечу и по мере знаний помогу. С какими проблемами сам встречался, я рассказал решение. Но ведь согласись, вопрос был реальным офтопом и не смотря на это я пытался помочь.

Я понимаю, что некоторые хотят спросить меня о чем-то прямо на сайте и мне приходится отвечать. Может создать форум, чтобы было место для общения и помощь, но тогда блог уже перестанет быть блогом а превратится во второй VR. Над темой вопросиника прямо на сайте стоит подумать, что-то типа гостевой.


Сергей

01 Октября 2008

И оно так и висит не смотря на офтоп.

У многих пользователей бывают проблемы с компьютером, иногда проблема возникает внезапно и каждый, кто хочет поскорее ее решить или наладить свой, кровью и потом заработанный им компьютер. Многие звонят своим знакомым, или же идут на сайт и незадумываясь где ему оставить вопрос, пишут там, чтобы его скорее увидели и ответили на него.
Так и в этом случае с жестким диском. Видимо парень тоже хотел чтобы ему быстрее помогли. А обратился он к тебе на блоге. Может быть потому что блог компьютерной тематики, а может быть он доверяет тебе.
Я в таких случаях стараюсь помочь всем, и неудаляю офтоп.

А на мыло может быть не захотел писать, так как решить проблему нужно было как можно скорее, а может быть попросту не знал твоего почтового адреса. Может быть оставил сообщение на блоге потому что заходил с сотового телефона, а на нем не сильно разгуляешься по сайту.
Я сам иногда пишу тебу комментарии через свою нокиа 6230i. На ней экран 128х128, естественно что неудобно бродить по сайтам. Но твой блог отлично отображается в таком телефоне, причем странички легкие.

Над темой вопросиника прямо на сайте стоит подумать, что-то типа гостевой.

В этом случае можно сделать что-то типа вопросника, тоже в отдельной ссылке. Озаглавить ссылку нужно как нибудь понятнее. Тогда многим пользователям не нужно будет сканировать сайт в поисках подобного раздела. Я думаю многие захотят пообщаться с тобой на интересующие их темы. Вот тогда начнут больше заходить на блог и он будет кипеть жизнью.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне