- 博客(1)
- 资源 (4)
- 收藏
- 关注
原创 GetBuffer, ReleaseBuffer, GetBufferSetLength(转)
CString类的这几个函数, 一直在用, 但总感觉理解的不够透彻, 不时还有用错的现象. 今天抽时间和Nico一起分析了一下, 算是拨开了云雾:GetBuffer和ReleaseBuffer是一套需要配合使用的函数, 与GetBufferSetLength相比, 优点是如果分配的空间大于实际保存的字符串(0结尾), ReleaseBuffer会把多余申请的空间释放, 归还给系统; 但使用
2008-08-07 08:51:00 1576 1
摄像头组件调用示例
Snapshot526控件
授权后抓拍到的图片以时间为基准自动命令,未授权再无法抓拍图片。
保存的图片格式为bmp格式。
包含包“Snapshot526.h”
并在stdafx.h中或调用的模块中加入
#pragma comment(lib, "Camera526.lib")
然后在操作开始摄像头抓拍操作事件中
CSnapshot526 snapshot;
CString strFileName=L"",strFilePath;
snapshot.SetGrantUserName(L"用户名"); //设置授权用户
snapshot.SetGrantUserKey(L"授权号"); //设置授权号
snapshot.SetCameraWindowSize(520,460); //设置视频窗口大小
snapshot.SetSaveImagePath(L"debug"); //设置抓拍图片保存路径
if(snapshot.ShowCameraDlg())
{
strFileName = snapshot.GetPhotoFileName(); //获取抓拍图片文件名
SetDlgItemText(IDC_STNAME,strFileName);
strFilePath = snapshot.GetPhotoFilePath(); //获取图片路径
if(!strFilePath.IsEmpty())
{
//显示抓拍到的图片
HDC hSrcDC;
HDC hDesDC;
HBITMAP hBitmap;
BITMAP bm;
CRect rect;
Sleep(100);
hDesDC = m_stPicture.GetDC()->m_hDC;
hSrcDC = CreateCompatibleDC(hDesDC);
hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(), strFilePath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
//m_stPicture.SetBitmap(hBitmap);
GetObject(hBitmap, sizeof(BITMAP), &bm);
SelectObject(hSrcDC, hBitmap);
m_stPicture.GetClientRect(&rect);
::SetStretchBltMode(hDesDC, COLORONCOLOR);
::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);
m_stPicture.InvalidateRect(rect);
}
}
注意,需要把文件Snapshot526.h拷到工程中并加入,另需要Camera526.dll和Camera526.lib文件。
具体查看示例
2014-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人