資源簡介
測試見http://blog.csdn.net/u011668104/article/details/53162845 第3部分運行測試與調整
代碼中FillBuff函數是具體寫圖片數據的,大家一般都是改這里。
之前這個資源我傳錯代碼了,之前的代碼QQ會奔潰,這個沒有問題,有問題找我huqiaoping23@qq.com

代碼片段和文件信息
//------------------------------------------------------------------------------
//?File:?DibHelper.cpp
//
//?Desc:?DirectShow?sample?code?-?In-memory?push?mode?source?filter
//???????Helper?routines?for?manipulating?bitmaps.
//
//?Copyright?(c)?Microsoft?Corporation.??All?rights?reserved.
//------------------------------------------------------------------------------
#include?
#include?“dibhelper.h“
HBITMAP?CopyScreenToBitmap(LPRECT?lpRect?BYTE?*pData?BITMAPINFO?*pHeader?HCURSOR?hCursor)
{
????HDC?????????hScrDC?hMemDC;?????????//?screen?DC?and?memory?DC
????HBITMAP?????hBitmap?hOldBitmap;????//?handles?to?deice-dependent?bitmaps
????int?????????nX?nY?nX2?nY2;???????//?coordinates?of?rectangle?to?grab
????int?????????nWidth?nHeight;????????//?DIB?width?and?height
????int?????????xScrn?yScrn;???????????//?screen?resolution
????//?check?for?an?empty?rectangle
????if?(IsRectEmpty(lpRect))
??????return?NULL;
????//?create?a?DC?for?the?screen?and?create
????//?a?memory?DC?compatible?to?screen?DC???
????hScrDC?=?CreateDC(TEXT(“DISPLAY“)?NULL?NULL?NULL);
????hMemDC?=?CreateCompatibleDC(hScrDC);
????//?get?points?of?rectangle?to?grab
????nX??=?lpRect->left;
????nY??=?lpRect->top;
????nX2?=?lpRect->right;
????nY2?=?lpRect->bottom;
????//?get?screen?resolution
????xScrn?=?GetDeviceCaps(hScrDC?HORZRES);
????yScrn?=?GetDeviceCaps(hScrDC?VERTRES);
????//make?sure?bitmap?rectangle?is?visible
????if?(nX?0)
????????nX?=?0;
????if?(nY?0)
????????nY?=?0;
????if?(nX2?>?xScrn)
????????nX2?=?xScrn;
????if?(nY2?>?yScrn)
????????nY2?=?yScrn;
????nWidth??=?nX2?-?nX;
????nHeight?=?nY2?-?nY;
????//?create?a?bitmap?compatible?with?the?screen?DC
????hBitmap?=?CreateCompatibleBitmap(hScrDC?nWidth?nHeight);
????//?select?new?bitmap?into?memory?DC
????hOldBitmap?=?(HBITMAP)?Selectobject(hMemDC?hBitmap);
????//?bitblt?screen?DC?to?memory?DC
????BitBlt(hMemDC?0?0?nWidth?nHeight?hScrDC?nX?nY?SRCCOPY);
//?draw?mouse
POINT?pt;
GetCursorPos(&pt);
DrawIconEx(hMemDC?pt.x-10?pt.y-10?hCursor?0?0?0?NULL?DI_NORMAL);??
????//?select?old?bitmap?back?into?memory?DC?and?get?handle?to
????//?bitmap?of?the?screen???
????hBitmap?=?(HBITMAP)?Selectobject(hMemDC?hOldBitmap);
????//?Copy?the?bitmap?data?into?the?provided?BYTE?buffer
????GetDIBits(hScrDC?hBitmap?0?nHeight?pData?pHeader?DIB_RGB_COLORS);
????//?clean?up
????DeleteDC(hScrDC);
????DeleteDC(hMemDC);
????//?return?handle?to?the?bitmap
????return?hBitmap;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????32164??2016-11-24?18:26??VirtualCamera-FQQ\Debug\DibHelper.obj
?????文件??????????0??2016-11-24?18:26??VirtualCamera-FQQ\Debug\DibHelper.sbr
?????文件??????60035??2016-11-24?18:26??VirtualCamera-FQQ\Debug\Dll.obj
?????文件??????????0??2016-11-24?18:26??VirtualCamera-FQQ\Debug\Dll.sbr
?????文件?????141392??2016-11-24?18:26??VirtualCamera-FQQ\Debug\Filter.obj
?????文件??????????0??2016-11-24?18:26??VirtualCamera-FQQ\Debug\Filter.sbr
?????文件?????920576??2016-11-24?18:26??VirtualCamera-FQQ\Debug\vc120.idb
?????文件?????782336??2016-11-24?18:26??VirtualCamera-FQQ\Debug\vc120.pdb
?????文件???????4781??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VCam.Build.CppClean.log
?????文件???????1385??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VCam.exp
?????文件???????1492??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VCam.lib
?????文件????6130688??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.bsc
?????文件???????5563??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.log
?????文件????????738??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\BscMake.command.1.tlog
?????文件???????1254??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\bscmake.read.1.tlog
?????文件????????742??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\bscmake.write.1.tlog
?????文件???????2720??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\cl.command.1.tlog
?????文件??????73058??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\CL.read.1.tlog
?????文件???????3018??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\CL.write.1.tlog
?????文件???????1584??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\li
?????文件???????4170??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\li
?????文件???????1042??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\li
?????文件????????216??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\VirtualCamera.lastbuildstate
?????文件????????552??2016-11-24?18:26??VirtualCamera-FQQ\Debug\VirtualCamera.tlog\VirtualCamera.write.1u.tlog
?????文件???????2577??2009-02-19?16:18??VirtualCamera-FQQ\DibHelper.cpp
?????文件???????1701??2009-02-19?14:43??VirtualCamera-FQQ\DibHelper.h
?????文件????????586??2016-11-14?12:04??VirtualCamera-FQQ\directshow.props
?????文件???????3656??2016-11-14?15:26??VirtualCamera-FQQ\Dll.cpp
?????文件????????257??2009-02-19?11:04??VirtualCamera-FQQ\Dll.def
?????文件???????1644??2014-09-16?23:38??VirtualCamera-FQQ\dshow\include\ba
............此處省略66個文件信息
- 上一篇:VC++ 推箱子游戲源代碼(雙緩存版)
- 下一篇:教學計劃編制 C++ 數據結構
評論
共有 條評論