Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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 в GDI+ наверное в принципе невозможно.

чушь... получить можно запросто, только 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
Приведите пожалуйста пример определения hdc для PictureBox в Net


наслаждайся..
  1. IntPtr hDC = pictureBox1.CreateGraphics().GetHdc();

Ответить

Номер ответа: 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
потому что ссылка на Graphics будет потеряна, и сделать вызов ReleaseHDC будет невозможно.

+1

если у него руки прямые, то догадается как это разрулить..

Ответить

Номер ответа: 11
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #11 Добавлено: 21.12.10 09:52
постараюсь угадать его первыю попытку:

Offtop:
PictureBox1.CreateGraphics.ReleaseHDC

Ответить

Номер ответа: 12
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #12 Добавлено: 21.12.10 10:17
:D ))))
Ну а чо, выглядит кагбэ вполне логично.. я бы даже сказал этот вариант сам собой напрашивается )))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам