Страница: 1 |
Страница: 1 |
Вопрос: Как получить hdc PictureBox в Net
Добавлено: 19.12.10 00:00
Автор вопроса: danilamaster
Как получить 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
Автор ответа:
danilamaster
Вопросов: 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
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 19.12.10 20:09
чушь... получить можно запросто, только hDC в NET не нужен.. все решается встроенными методами платформы..
Номер ответа: 3
Автор ответа:
danilamaster
Вопросов: 2
Ответов: 6
Профиль | | #3
Добавлено: 19.12.10 21:56
Чушь? Запросто?
Приведите пожалуйста пример определения hdc для PictureBox в Net
Номер ответа: 4
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 19.12.10 23:36
наслаждайся..
Номер ответа: 5
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #5
Добавлено: 19.12.10 23:43
только повторюсь еще раз.. hDC в НЕТ без надобности.. практически ВСЕ можно сделать встроенными средствами платформы без графических API
Номер ответа: 6
Автор ответа:
danilamaster
Вопросов: 2
Ответов: 6
Профиль | | #6
Добавлено: 20.12.10 00:38
1. Большое спасибо за пример.
2 Да согласен, в Net можно делать всё без графических API.
Номер ответа: 7
Автор ответа:
danilamaster
Вопросов: 2
Ответов: 6
Профиль | | #7
Добавлено: 20.12.10 00:43
PS Точнее будет так:
Dim hDC As IntPtr
hDC = PictureBox1.CreateGraphics.GetHdc
Номер ответа: 8
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #8
Добавлено: 20.12.10 09:27
помоему, это скорее фейл, чем вин, господа
Номер ответа: 9
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #9
Добавлено: 20.12.10 11:05
Господа, советую обратить внимание на тот факт что hdc это неуправляемый ресурс, поэтому необходим также вызов Graphics.ReleaseHDC.
Ввиду этого нельзя делать вызов PictureBox1.CreateGraphics.GetHdc, потому что ссылка на Graphics будет потеряна, и сделать вызов ReleaseHDC будет невозможно.
Номер ответа: 10
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #10
Добавлено: 20.12.10 19:24
+1
если у него руки прямые, то догадается как это разрулить..
Номер ответа: 11
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #11
Добавлено: 21.12.10 09:52
постараюсь угадать его первыю попытку:
Номер ответа: 12
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #12
Добавлено: 21.12.10 10:17
:D ))))
Ну а чо, выглядит кагбэ вполне логично.. я бы даже сказал этот вариант сам собой напрашивается )))