Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рисование одинарных точек, Пытаюсь нарисовать одну точку 
:(
    Опции темы
ZA3A24
Дата 15.4.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.2.2009

Репутация: нет
Всего: нет



Пытаюсь средствами C# нарисовать одну-единственную точку на форму (или в PictureBox'е)

Будь это, Дельфи сделал бы так:

Код

Form1.Canvas.Pixels[100,100] = clRed;


Но поскольку Graphics в C# устроен совершенно иначе, чем канва, этот номер не проходит. 

В MSDN нашел рисование средствами WINAPI на Си:
Код

HWND hwnd = GetDesktopWindow();
HDC  hdc  = GetWindowDC(hwnd);
COLORREF clr = RGB(255, 0, 0);
SetPixel(hdc, 100,100, clr);


Но как-то жутко применять сие в аккуратный C# код.....

В описании Graphics не нашел альтернативы.... Что делать?  smile 

Это сообщение отредактировал(а) ZA3A24 - 15.4.2009, 11:23
PM MAIL   Вверх
DVariuS
Дата 15.4.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



Код

protected override void OnPaint(PaintEventArgs e) 

       e.Graphics.FillRectangle(Brushes.Black, 20, 20, 1, 1); 
}

PM MAIL   Вверх
ZA3A24
Дата 15.4.2009, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.2.2009

Репутация: нет
Всего: нет



К сожалению, это не пиксель, а квадрат..... Нехороший способ....

Это сообщение отредактировал(а) ZA3A24 - 15.4.2009, 12:28
PM MAIL   Вверх
DVariuS
Дата 15.4.2009, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



В .NET отсутствуют специальные способы для рисования точек. Отдельные пиксели можно изменять только в Bitamp, используя метод SetPixel.


PM MAIL   Вверх
ZA3A24
Дата 15.4.2009, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.2.2009

Репутация: нет
Всего: нет



Жалко........ Хотя можно тогда наверное, рисовать на битмапе, а потом выводить его целиком на форму....

Что еще хуже....

Это сообщение отредактировал(а) ZA3A24 - 15.4.2009, 12:42
PM MAIL   Вверх
DVariuS
Дата 15.4.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 200
Регистрация: 10.2.2009
Где: Ukraine

Репутация: 5
Всего: 8



Все зависит от задачи: чтобы нарисовать на форме пару точек, подойдет предложенный мной способ, а если необходимо вывести много пикселей, полученных путем сложных расчетов или преобразований, то лучшим способоом является рисование на битмапе и последующий вывод на форму.
PM MAIL   Вверх
ZA3A24
Дата 15.4.2009, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.2.2009

Репутация: нет
Всего: нет



Спасибо, приму к сведению smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0672 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.