www.pudn.com > ViewVideo1.rar > VideoWnd.h
#pragma once
// CVideoWnd 对话框
#ifndef _VIEW_PREVIEW_WND
#define _VIEW_PREVIEW_WND
#include ".\HKLIB\HikVisionSdk.h"
#include "resource.h"
#define MAX_DSPS_SUPPORT 24
#define MAX_CHANNELS 24
#define MAX_VIDEO_WNDS 512
//#define NONDEVICE_DEBUG
extern COLORREF gBackgroundColor;
#define WM_VIDEOWND_LBDOWN WM_USER+1001
#define WM_VIDEOWND_LBUP WM_USER+1002
#define WM_VIDEOWND_MOUSEMOVE WM_USER+1003
#define WM_VIDEOWND_LBDBCLICK WM_USER+1004
class CVideoWnd : public CDialog
{
//DECLARE_DYNAMIC(CVideoWnd)
private:
HANDLE m_hChannel;
CWnd *pWnd;
CString m_strError;
CBrush m_brush;
BOOL m_bLBDown;
int m_ipx;
int m_ipy;
VideoStandard_t m_lStandard; //视频制式
BOOL m_bNotify;
public:
//有关视频预览的属性值
//需要初始化的值
int m_iChannel; //通道号
int m_iFrameRate; //采样频率
//可以实时调整的值
int m_iBrightness; //亮度
int m_iContrast; //对比度
int m_iHue; //色调
int m_iSaturation; //饱和度
///////////////////////////////////////////////
//,系数越低质量越好,取值范围(12-30),一般取值法为:
//取I帧和P帧一样大,B帧比它们大3到5,例如:15,15,20和
//18,18,23,这里系统默认值为18,18,23; 2.0版支持高
//清晰度图像设定,推荐值为:12 12 17并可在运行时设定。
//DS-400xH 系列 SDK 说明书 9海康威视技术文档(版权所有)
//注:量化系数解释:量化系数是强烈影响MPEG标准中编码图像
//质量和码率的参数,当量化系数越低,图像质量就会越高,码
//率也就越高,反之,图形质量就会越低,码率也就越低。
int m_iIval; //I帧质量量化系数
int m_iPval; //P帧质量量化系数
int m_iBval; //B帧质量量化系数
///////////////////////////////////////////////
//在某一制式的摄像头已经接好的情况下启动系统时可不必调用
//该函数,如果没有接摄像头的情况下启动系统然后再接NTSC制
//式的摄像头则必须调用该函数,或者中途调换不同制式的摄像
//头也必须调用该函数
BOOL m_bPreviewStarted;
BOOL StartPreview();
BOOL StopPreview();
CString GetLastError(int errnumb=HWERR_SUCCESS);
public:
CVideoWnd(CWnd* pParent = NULL); // 标准构造函数
CVideoWnd(HANDLE handle, CWnd* pParent); // 标准构造函数
void SetHandle(HANDLE handle){m_hChannel=handle;}
HANDLE GetHandle(){return m_hChannel;}
virtual ~CVideoWnd();
// 对话框数据
enum { IDD = IDD_DIALOG_VWND };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
public:
virtual BOOL Create(LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL);
public:
afx_msg void OnBnClickedOk();
public:
afx_msg void OnBnClickedCancel();
public:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
public:
afx_msg void OnMove(int x, int y);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
//afx_msg void OnDestory();
public:
afx_msg void OnClose();
public:
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
afx_msg LRESULT OnNotifyFlagYes(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnNotifyFlagNo(WPARAM wParam, LPARAM lParam);
};
#endif