Страница: 1 |
Вопрос: Как получить hdc PictureBox в Net | Добавлено: 19.12.10 00:00 |
Автор вопроса: ![]() |
Как получить hdc PictureBox в Net
На Форме PictureBox Функции API Public Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As Long Public Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As Long В VB6 есть Me.Picture.hDC В Net не могу найти. Заранее спасибо. |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 2 Ответов: 6 |
Профиль | Цитата | #1 | Добавлено: 19.12.10 19:49 |
Я за один день решил свои задачи используя возможности Net без этих Функций API.
Использовал: System.Drawing.Drawing2D, System.Drawing.Text, System.Drawing Получить hdc в GDI+ наверное в принципе невозможно. В VB6 переменная hdc объявляется как Long В Net переменная hdc объявляется: Dim hdc As IntPtr |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #2 | Добавлено: 19.12.10 20:09 |
Получить hdc в GDI+ наверное в принципе невозможно.
чушь... получить можно запросто, только hDC в NET не нужен.. все решается встроенными методами платформы.. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 2 Ответов: 6 |
Профиль | Цитата | #3 | Добавлено: 19.12.10 21:56 |
Чушь? Запросто?
Приведите пожалуйста пример определения hdc для PictureBox в Net |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #4 | Добавлено: 19.12.10 23:36 |
Приведите пожалуйста пример определения hdc для PictureBox в Net
наслаждайся..
|
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #5 | Добавлено: 19.12.10 23:43 |
только повторюсь еще раз.. hDC в НЕТ без надобности.. практически ВСЕ можно сделать встроенными средствами платформы без графических API |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 2 Ответов: 6 |
Профиль | Цитата | #6 | Добавлено: 20.12.10 00:38 |
1. Большое спасибо за пример.
2 Да согласен, в Net можно делать всё без графических API. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 2 Ответов: 6 |
Профиль | Цитата | #7 | Добавлено: 20.12.10 00:43 |
PS Точнее будет так:
Dim hDC As IntPtr hDC = PictureBox1.CreateGraphics.GetHdc |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #8 | Добавлено: 20.12.10 09:27 |
помоему, это скорее фейл, чем вин, господа |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #9 | Добавлено: 20.12.10 11:05 |
Господа, советую обратить внимание на тот факт что hdc это неуправляемый ресурс, поэтому необходим также вызов Graphics.ReleaseHDC.
Ввиду этого нельзя делать вызов PictureBox1.CreateGraphics.GetHdc, потому что ссылка на Graphics будет потеряна, и сделать вызов ReleaseHDC будет невозможно. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #10 | Добавлено: 20.12.10 19:24 |
потому что ссылка на Graphics будет потеряна, и сделать вызов ReleaseHDC будет невозможно.
+1 если у него руки прямые, то догадается как это разрулить.. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #11 | Добавлено: 21.12.10 09:52 |
постараюсь угадать его первыю попытку:
Offtop: PictureBox1.CreateGraphics.ReleaseHDC
|
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #12 | Добавлено: 21.12.10 10:17 |
:D ))))
Ну а чо, выглядит кагбэ вполне логично.. я бы даже сказал этот вариант сам собой напрашивается ))) |
Страница: 1 |
|