Страница: 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 ))))
 
    
Ну а чо, выглядит кагбэ вполне логично.. я бы даже сказал этот вариант сам собой напрашивается )))