剪贴板

//拷贝字符
bool CWHService::SetClipboardString(LPCTSTR pszString)
{
//变量定义
HANDLE hData=NULL;
BOOL bOpenClopboard=FALSE;


//执行逻辑
__try
{
//打开拷贝
bOpenClopboard=OpenClipboard(AfxGetMainWnd()->m_hWnd);
if (bOpenClopboard==FALSE) __leave;


//清空拷贝
if (EmptyClipboard()==FALSE) __leave;


//申请内存
HANDLE hData=GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINIT,CountStringBuffer(pszString));
if (hData==NULL) __leave;


//复制数据
lstrcpy((LPTSTR)GlobalLock(hData),pszString);
GlobalUnlock(hData);


//设置数据
#ifndef _UNICODE
::SetClipboardData(CF_TEXT,hData);
#else
::SetClipboardData(CF_UNICODETEXT,hData);
#endif
}


//终止程序
__finally
{
//释放内存
if (hData!=NULL) GlobalUnlock(hData);


//关闭拷贝
if (bOpenClopboard==TRUE) CloseClipboard();


//错误判断
if (AbnormalTermination()==TRUE)
{
ASSERT(FALSE);
}
}


return true;

}

//配置函数
BOOL CCameraControl::OnInitDialog()
{
__super::OnInitDialog();


//设置标题
SetWindowText(TEXT("视频拍摄"));


//设置资源
AfxSetResourceHandle(GetModuleHandle(NULL));


//获取大小
CRect rcClient;
m_CameraControl.GetClientRect(&rcClient);


//创建窗口
DWORD dwStyle=WS_CHILD|WS_BORDER;
m_hWndCamera=capCreateCaptureWindow(NULL,dwStyle,0,0,rcClient.Width(),rcClient.Height(),m_CameraControl,IDC_CAMERA_WND);


//连接设备
if (capDriverConnect(m_hWndCamera,0)==TRUE)
{
//获取性能
capDriverGetCaps(m_hWndCamera,&m_CapDrivercaps,sizeof(m_CapDrivercaps));


//结果判断
if (m_CapDrivercaps.fCaptureInitialized==TRUE)
{
//设置变量
m_bInit=true;


//设置属性
capPreview(m_hWndCamera,TRUE);
capPreviewRate(m_hWndCamera,30);


//显示窗口
::ShowWindow(m_hWndCamera,SW_SHOW);


//获取状态
capGetStatus(m_hWndCamera,&m_CapStatus,sizeof(m_CapStatus));
}
}


//设置控件
if (m_bInit==true)
{
m_btCameraDict.EnableWindow(TRUE);
m_StringControl.SetWindowText(TEXT("摄像头初始化成功"));
}
else
{
//设置信息
m_StringControl.SetWindowText(TEXT("没有安装摄像头或者摄像头初始化失败"));
}


return TRUE; 
}

VOID CCameraControl::OnBnClickedCameraDict()
{
//截获图像
capGrabFrame(m_hWndCamera);
capEditCopy(m_hWndCamera);


//拷贝图像
if (OpenClipboard()==FALSE)
{
ASSERT(FALSE);
return;
}


//销毁图像
if (m_ImageResult.IsNull()==false)
{
m_ImageResult.Destroy();
}


//拷贝数据
HBITMAP hImageResult=(HBITMAP)CopyImage(GetClipboardData(CF_BITMAP),IMAGE_BITMAP,0,0,LR_COPYRETURNORG);


//结果处理
if (hImageResult!=NULL)
{
//附加数据
m_ImageResult.Attach(hImageResult);


//清空剪切
EmptyClipboard();
CloseClipboard();


//设置按钮
m_btOk.EnableWindow(TRUE);
m_btRepeat.EnableWindow(TRUE);
m_btCameraDict.EnableWindow(FALSE);


return;
}


return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值