Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница:

 

  Вопрос: исключить контекст окна из области отсечения Добавлено: 31.01.11 01:51  

Автор вопроса:  udn79
Если можно то Пример на любом языке, или готовая программа с такой реализацией.

1) Набросал простой пример:
Подключаю "Microsoft Mirror Driver", что-то вроде тестового драйвера для видео захвата. Работает без глюков, прост в эксплуатации. Давно хотел такой...

2) есть еще avifil32.dll ее используют, начиная с версии VB5.0 для монтажа видео
В моем случае Принцип BMP2AVI

Задача: Проецировать на форме, область захвата, если весь экран то весь, но в видео поток AVI файла эта проекция, не должна идти.

Решение 1: Копируем контекст формы в виртуальный контекст до начала проекции, а после снимка восстанавливаем контекст формы, что-то вроде:
 
hDisp = CreateDC("", "\\.\DISPLAY1", "", 0)
memDC=CreateCompatibleDC
'' #######################################
With Screen ''
      w = .Width / .TwipsPerPixelX
      h = .Height / .TwipsPerPixelX
     Call Blt(memDC, 0, 0, w, h, hDisp, 0, 0, w, h, vbSrcCopy)
End With

Dim Rt As RECT
Call GetWindowRect(Me.hwnd, Rt)
With Rt
      w = .Right - .Left
      h = .Bottom - Top
      Call Blt(memDC, .Left, .Top, w, h, Me.hdc, .Left, .Top, w, h, vbSrcCopy)
End With

With Screen
      w = .Width / .TwipsPerPixelX
      h = .Height / .TwipsPerPixelX
      Call StretchBlt(Form1.hdc, 0, 0, Form1.ScaleWidth, Form1.ScaleHeight, hDisp, 0, 0, w, h, vbSrcCopy)
End With

 res = AVIFileOpen(pfile, szOutputAVIFile, OF_WRITE Or OF_CREATE, 0&)
''###########################################

Решение 2: ………….

Я думаю – это не красивое решение, и есть более правильный вариант, подскажите, пожалуйста.

Язык СР любой, мануал на русском, английском и на базовом французском., без Native API

Ответить

  Ответы Всего ответов: 0  

Нет ответов

Страница:

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



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