添加项目文件。
This commit is contained in:
500
fast/BSWndContainer.cpp
Normal file
500
fast/BSWndContainer.cpp
Normal file
@@ -0,0 +1,500 @@
|
||||
// BSWndContainer.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "BSWndContainer.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBSWndContainer
|
||||
|
||||
CBSWndContainer::CBSWndContainer()
|
||||
{
|
||||
// init active page pointer
|
||||
m_pActivePage = NULL;
|
||||
|
||||
// init window state
|
||||
m_bFullScreen = FALSE; // Full screen sign
|
||||
m_bMultiScreen = TRUE; // Multiple-window sign
|
||||
m_bAutoAdjustPos= FALSE; // Auto adjust sign
|
||||
|
||||
SetDrawActivePage(TRUE); // Enable frame
|
||||
|
||||
m_nShowPortion=100; // Display proportion
|
||||
}
|
||||
|
||||
CBSWndContainer::~CBSWndContainer()
|
||||
{
|
||||
// remove all pages
|
||||
while(!m_PageList.IsEmpty())
|
||||
m_PageList.RemoveHead();
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CBSWndContainer, CWnd)
|
||||
//{{AFX_MSG_MAP(CBSWndContainer)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBSWndContainer member functions
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to create container object.
|
||||
// it is override from cwnd class
|
||||
BOOL CBSWndContainer::Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext )
|
||||
{
|
||||
dwStyle|=WS_EX_TOOLWINDOW;
|
||||
return CWnd::Create(lpszClassName,lpszWindowName,dwStyle,rect,pParentWnd,nID,pContext );
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to add a page wnd to
|
||||
// container. if success retrun TRUE,else return
|
||||
// FALSE.
|
||||
BOOL CBSWndContainer::AddPage(CWnd *pWnd, BOOL bRepaint)
|
||||
{
|
||||
// check parameter
|
||||
if( !pWnd || !IsWindow(pWnd->m_hWnd) ) return FALSE;
|
||||
|
||||
// check list
|
||||
POSITION pos=m_PageList.Find(pWnd);
|
||||
if(pos!=NULL)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// added page
|
||||
m_PageList.AddTail(pWnd);
|
||||
|
||||
if( m_bDrawActive ) DrawActivePage(FALSE);
|
||||
|
||||
// reset active page
|
||||
SetActivePage(pWnd, bRepaint);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to remove a page wnd from
|
||||
// container.
|
||||
CWnd *CBSWndContainer::DelPage(CWnd *pWnd)
|
||||
{
|
||||
// check list
|
||||
POSITION pos=m_PageList.Find(pWnd);
|
||||
if(pos==NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
if(pWnd==m_pActivePage)
|
||||
if(m_pActivePage==GetPrevPage(pWnd))//m_PageList.IsEmpty()?NULL:m_PageList.GetHead();
|
||||
m_pActivePage=NULL;
|
||||
else m_pActivePage=GetPrevPage(pWnd);
|
||||
|
||||
m_PageList.RemoveAt(pos);
|
||||
|
||||
if (pWnd)
|
||||
{
|
||||
pWnd->ShowWindow(SW_HIDE);
|
||||
}
|
||||
|
||||
// Invalidate();
|
||||
|
||||
return pWnd;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to remove active page from
|
||||
// container.
|
||||
CWnd *CBSWndContainer::DelPage()
|
||||
{
|
||||
return DelPage(m_pActivePage);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to set a page to be active
|
||||
// page.
|
||||
void CBSWndContainer::SetActivePage(CWnd *pWnd, BOOL bRepaint)
|
||||
{
|
||||
// check parameter
|
||||
if( !pWnd || !IsWindow(pWnd->m_hWnd) ) return;
|
||||
|
||||
// if pWnd is the Active Page, return
|
||||
if( m_pActivePage==pWnd ) return;
|
||||
|
||||
// check list
|
||||
POSITION pos=m_PageList.Find(pWnd);
|
||||
if(pos==NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(bRepaint) UpdateWnd();
|
||||
|
||||
if( m_bDrawActive ) DrawActivePage(FALSE);
|
||||
|
||||
m_pActivePage=pWnd;
|
||||
|
||||
if( m_bDrawActive ) DrawActivePage(TRUE);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to get the active page's
|
||||
// pointer. if no active page,return NULL;
|
||||
CWnd *CBSWndContainer::GetActivePage()
|
||||
{
|
||||
return m_pActivePage;
|
||||
}
|
||||
|
||||
CWnd *CBSWndContainer::GetTailPage()
|
||||
{
|
||||
return m_PageList.GetTail();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to get the next page by
|
||||
// the page that user defined. if the defined
|
||||
// page is not find in container, return NULL.
|
||||
CWnd *CBSWndContainer::GetNextPage(CWnd *pWnd)
|
||||
{
|
||||
// check parameter
|
||||
if( !pWnd || !IsWindow(pWnd->m_hWnd) ) return NULL;
|
||||
|
||||
// check list
|
||||
POSITION pos=m_PageList.Find(pWnd);
|
||||
if(pos==NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//
|
||||
m_PageList.GetNext(pos);
|
||||
if(pos==NULL)
|
||||
return m_PageList.GetHead();
|
||||
else
|
||||
return m_PageList.GetNext(pos);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to get the prev page by
|
||||
// the page that user defined. if the defined
|
||||
// page is not find in container,return NULL.
|
||||
CWnd *CBSWndContainer::GetPrevPage(CWnd *pWnd)
|
||||
{
|
||||
// check parameter
|
||||
if( !pWnd || !IsWindow(pWnd->m_hWnd) ) return NULL;
|
||||
|
||||
// check list
|
||||
POSITION pos=m_PageList.Find(pWnd);
|
||||
if(pos==NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//
|
||||
m_PageList.GetPrev(pos);
|
||||
if(pos==NULL)
|
||||
return m_PageList.GetTail();
|
||||
else
|
||||
return m_PageList.GetPrev(pos);
|
||||
}
|
||||
|
||||
CWnd *CBSWndContainer::GetPage(int nIndex)
|
||||
{
|
||||
CWnd *pRet = NULL;
|
||||
POSITION pos = m_PageList.FindIndex(nIndex);
|
||||
if(pos == NULL) return pRet;
|
||||
|
||||
return m_PageList.GetAt(pos);
|
||||
}
|
||||
|
||||
int CBSWndContainer::GetCount() const
|
||||
{
|
||||
return m_PageList.GetCount();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// call this function to page wnds,when
|
||||
// the window is resized.
|
||||
void CBSWndContainer::UpdateWnd()
|
||||
{
|
||||
if(!IsWindowVisible()||IsIconic()) return;
|
||||
/////////////////////
|
||||
//Calculate display total zone
|
||||
|
||||
//To get current window device coordinates
|
||||
CRect rtContainer;
|
||||
GetClientRect(&rtContainer);
|
||||
GetShowRect(&rtContainer);
|
||||
rtContainer.DeflateRect(1,1);
|
||||
|
||||
//Adjust Container position
|
||||
if(m_bAutoAdjustPos)
|
||||
AdjustRect(&rtContainer);
|
||||
|
||||
/////////////////////
|
||||
//
|
||||
if(m_bMultiScreen)
|
||||
{ //Multiple-window status
|
||||
CRect rt;
|
||||
int nCount=m_PageList.GetCount();
|
||||
int i=0;
|
||||
for(POSITION pos=m_PageList.GetHeadPosition();pos!=NULL;)
|
||||
{
|
||||
CWnd *p=m_PageList.GetNext(pos);
|
||||
|
||||
rt=rtContainer;
|
||||
CalcPageRect(&rt,i,nCount);
|
||||
rt.DeflateRect(WINDOW_SPACE,WINDOW_SPACE,WINDOW_SPACE,WINDOW_SPACE);
|
||||
p->MoveWindow(&rt);
|
||||
p->ShowWindow(SW_SHOW);
|
||||
i++;
|
||||
}
|
||||
if( m_bDrawActive && m_PageList.GetCount()>1 ) DrawActivePage(TRUE);
|
||||
}
|
||||
else
|
||||
{ //One-window status
|
||||
for(POSITION pos=m_PageList.GetHeadPosition();pos!=NULL;)
|
||||
{
|
||||
CWnd *p=m_PageList.GetNext(pos);
|
||||
if(p==m_pActivePage)
|
||||
p->MoveWindow(&rtContainer);
|
||||
else
|
||||
{
|
||||
if(m_bFullScreen)
|
||||
p->MoveWindow(0,0,1,1);
|
||||
else
|
||||
p->MoveWindow(rtContainer.right+1,rtContainer.bottom+1,1,1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// full screen
|
||||
void CBSWndContainer::SetFullScreen(BOOL bFlag)
|
||||
{
|
||||
if(bFlag==m_bFullScreen) return;
|
||||
|
||||
if( bFlag )
|
||||
{//Full screen
|
||||
//Get displayer resolution
|
||||
int cx=GetSystemMetrics(SM_CXSCREEN);
|
||||
int cy=GetSystemMetrics(SM_CYSCREEN);
|
||||
|
||||
//Save position information
|
||||
GetWindowPlacement(&_temppl);
|
||||
//Modify style
|
||||
ModifyStyle(WS_CHILD,WS_POPUP);
|
||||
//Modify main-window
|
||||
_tempparent=SetParent(NULL);
|
||||
_tempparent->ShowWindow(SW_HIDE);
|
||||
//Move window
|
||||
MoveWindow(0,0,cx,cy);
|
||||
// SetWindowPos(&wndTopMost,0,0,cx,cy,NULL);
|
||||
}
|
||||
else
|
||||
{//Restore
|
||||
//Restore main window
|
||||
_tempparent->ShowWindow(SW_SHOW);
|
||||
SetParent(_tempparent);
|
||||
//Restore style
|
||||
ModifyStyle(WS_POPUP,WS_CHILD);
|
||||
//Restore position
|
||||
SetWindowPlacement(&_temppl);
|
||||
}
|
||||
|
||||
m_bFullScreen=bFlag;
|
||||
Invalidate();
|
||||
}
|
||||
BOOL CBSWndContainer::GetFullScreen()
|
||||
{
|
||||
return m_bFullScreen;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// multiscreen
|
||||
void CBSWndContainer::SetMultiScreen(BOOL bFlag)
|
||||
{
|
||||
if(m_bMultiScreen==bFlag) return;
|
||||
m_bMultiScreen=bFlag;
|
||||
Invalidate();
|
||||
}
|
||||
BOOL CBSWndContainer::GetMultiScreen()
|
||||
{
|
||||
return m_bMultiScreen;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// autoadjustpos
|
||||
void CBSWndContainer::SetAutoAdjustPos(BOOL bFlag)
|
||||
{
|
||||
if(m_bAutoAdjustPos==bFlag) return;
|
||||
m_bAutoAdjustPos=bFlag;
|
||||
Invalidate();
|
||||
}
|
||||
BOOL CBSWndContainer::GetAutoAdjustPos()
|
||||
{
|
||||
return m_bAutoAdjustPos;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// draw active page
|
||||
void CBSWndContainer::SetDrawActivePage(BOOL bFlag,COLORREF clrTopLeft,COLORREF clrBottomRight)
|
||||
{
|
||||
if(m_bDrawActive==bFlag) return;
|
||||
if(bFlag)
|
||||
{
|
||||
m_clrTopLeft=clrTopLeft;
|
||||
m_clrBottomRight=clrBottomRight;
|
||||
}
|
||||
m_bDrawActive=bFlag;
|
||||
DrawActivePage(bFlag);
|
||||
}
|
||||
BOOL CBSWndContainer::GetDrawActivePage()
|
||||
{
|
||||
return m_bDrawActive;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Display percentage
|
||||
// 40 <= nPortion <=100
|
||||
void CBSWndContainer::SetShowPortion(int nPortion)
|
||||
{
|
||||
if(m_nShowPortion==nPortion) return;
|
||||
if(m_nShowPortion<40) m_nShowPortion=40;
|
||||
if(m_nShowPortion>100) m_nShowPortion=100;
|
||||
m_nShowPortion=nPortion;
|
||||
Invalidate();
|
||||
}
|
||||
int CBSWndContainer::GetShowPortion()
|
||||
{
|
||||
return m_nShowPortion;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// clean the no useful page in the container,
|
||||
// return the page count.
|
||||
int CBSWndContainer::UpdateList()
|
||||
{
|
||||
POSITION posPrev;
|
||||
for(POSITION pos=m_PageList.GetHeadPosition();pos!=NULL;)
|
||||
{
|
||||
posPrev=pos;
|
||||
CWnd *p=m_PageList.GetNext(pos);
|
||||
if(!IsWindow(p->m_hWnd))
|
||||
m_PageList.RemoveAt(posPrev);
|
||||
}
|
||||
return m_PageList.GetCount();
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// get a rect by the index of a child
|
||||
void CBSWndContainer::CalcPageRect(LPRECT lpRect,int nIndex,int nPageCount)
|
||||
{
|
||||
if((nPageCount<=0)||(nIndex>=nPageCount))
|
||||
{
|
||||
lpRect->left=lpRect->right=lpRect->top=lpRect->bottom=0;
|
||||
return;
|
||||
}
|
||||
//get row count
|
||||
int nRow=0;
|
||||
while((nRow)*(nRow)<nPageCount) nRow++;
|
||||
|
||||
//get singledlg width and height
|
||||
int nWidth=(lpRect->right-lpRect->left)/nRow;
|
||||
int nHeight=(lpRect->bottom-lpRect->top)/nRow;
|
||||
|
||||
//get top-left point
|
||||
CPoint pt;
|
||||
pt.x=lpRect->left+nWidth*(nIndex%nRow);
|
||||
pt.y=lpRect->top+nHeight*(nIndex/nRow);
|
||||
|
||||
//set rect return back
|
||||
lpRect->left=pt.x;
|
||||
lpRect->top=pt.y;
|
||||
lpRect->right=lpRect->left+nWidth;
|
||||
lpRect->bottom=lpRect->top+nHeight;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// adjust a rect by defined proportion
|
||||
void CBSWndContainer::AdjustRect(LPRECT lpRect)
|
||||
{
|
||||
int nWidth=lpRect->right-lpRect->left;
|
||||
int nHeight=lpRect->bottom-lpRect->top;
|
||||
CPoint pt((lpRect->left+lpRect->right)/2,(lpRect->top+lpRect->bottom)/2);
|
||||
|
||||
int nTemp=nWidth*8/11;
|
||||
if(nTemp>nHeight)
|
||||
{
|
||||
nWidth=nHeight*11/8;
|
||||
}
|
||||
else if(nTemp<nHeight)
|
||||
{
|
||||
nHeight=nTemp;
|
||||
}
|
||||
lpRect->left=pt.x-nWidth/2;
|
||||
lpRect->right=pt.x+nWidth/2;
|
||||
lpRect->top=pt.y-nHeight/2;
|
||||
lpRect->bottom=pt.y+nHeight/2;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//To get display zone in proportion
|
||||
void CBSWndContainer::GetShowRect(LPRECT lpRect)
|
||||
{
|
||||
if(m_nShowPortion<40) m_nShowPortion=40;
|
||||
if(m_nShowPortion>100) m_nShowPortion=100;
|
||||
|
||||
int nWidth = lpRect->right-lpRect->left;
|
||||
int nHeight = lpRect->bottom-lpRect->top;
|
||||
|
||||
int nNewWidth = (int)(nWidth*m_nShowPortion/100);
|
||||
int nNewHeight = (int)(nHeight*m_nShowPortion/100);
|
||||
|
||||
int ndx = ( nWidth-nNewWidth )/2;
|
||||
int ndy = ( nHeight-nNewHeight )/2;
|
||||
|
||||
lpRect->left = lpRect->left + ndx;
|
||||
lpRect->top = lpRect->top + ndy;
|
||||
lpRect->right = lpRect->left + nNewWidth;
|
||||
lpRect->bottom = lpRect->top + nNewHeight;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// draw the frame of active page
|
||||
void CBSWndContainer::DrawActivePage(BOOL bFlag)
|
||||
{
|
||||
if( !m_bMultiScreen ||
|
||||
!m_pActivePage ||
|
||||
m_PageList.GetCount()<2
|
||||
) return;
|
||||
|
||||
CRect rt;
|
||||
m_pActivePage->GetWindowRect(&rt);
|
||||
ScreenToClient(&rt);
|
||||
rt.InflateRect(1,1);
|
||||
|
||||
if(bFlag)
|
||||
{
|
||||
CDC *pDC=GetDC();
|
||||
if(!pDC) return;
|
||||
|
||||
// pDC->Draw3dRect(&rt,m_clrTopLeft, m_clrBottomRight);
|
||||
pDC->Draw3dRect(&rt,RGB(255,0,0), RGB(255,0,0));
|
||||
|
||||
ReleaseDC(pDC);
|
||||
}
|
||||
else
|
||||
InvalidateRect(&rt);
|
||||
}
|
||||
|
||||
|
||||
208
fast/BSWndContainer.h
Normal file
208
fast/BSWndContainer.h
Normal file
@@ -0,0 +1,208 @@
|
||||
/*********************************************************************************
|
||||
* Name : CBSWndContainer
|
||||
*
|
||||
* Function : When play multiple-channel video in one window, it is to control multiple-window.
|
||||
*
|
||||
* [one/multiple-window switch],[Full-screen],[Frame],[Window zoom in proportion],[Auto adjust width and height proportion]
|
||||
*
|
||||
* Writer : OLinS
|
||||
*
|
||||
* Time : 2003.1.15
|
||||
*
|
||||
*********************************************************************************
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(AFX_BSWNDCONTAINER_H__73CB8E46_8ED9_4C36_BA91_29D5F5BB05DE__INCLUDED_)
|
||||
#define AFX_BSWNDCONTAINER_H__73CB8E46_8ED9_4C36_BA91_29D5F5BB05DE__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// BSWndContainer.h : header file
|
||||
//
|
||||
//Video window switch
|
||||
#define WINDOW_SPACE 1
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBSWndContainer window
|
||||
#include <afxtempl.h>
|
||||
|
||||
class CBSWndContainer : public CWnd
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CBSWndContainer();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CBSWndContainer)
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CBSWndContainer();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CBSWndContainer)
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// public interface member
|
||||
public:
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Create object (Container)
|
||||
BOOL Create( LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Add window
|
||||
BOOL AddPage(CWnd *pWnd, BOOL bRepaint = TRUE);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Delete window(Delete from the list,the real object need to be deleted from the external side.)
|
||||
CWnd *DelPage(CWnd *pWnd);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Delete activated window
|
||||
CWnd *DelPage();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Set activated window
|
||||
void SetActivePage(CWnd *pWnd, BOOL bRepaint = TRUE);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get activated window
|
||||
CWnd *GetActivePage();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get the next window
|
||||
CWnd *GetNextPage(CWnd *pWnd);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get previous window
|
||||
CWnd *GetPrevPage(CWnd *pWnd);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get the specifed window
|
||||
CWnd *GetPage(int nIndex);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get window amount
|
||||
int GetCount() const;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get last window
|
||||
CWnd *GetTailPage();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Switch window
|
||||
virtual void UpdateWnd();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Full-screen display
|
||||
void SetFullScreen(BOOL bFlag);
|
||||
BOOL GetFullScreen();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
//Multiple-window display
|
||||
void SetMultiScreen(BOOL bFlag);
|
||||
BOOL GetMultiScreen();
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
//Auto adjust dimension
|
||||
void SetAutoAdjustPos(BOOL bFlag);
|
||||
BOOL GetAutoAdjustPos();
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Activate window frame
|
||||
void SetDrawActivePage(BOOL bFlag,COLORREF clrTopLeft=RGB(255, 0, 0), COLORREF clrBottomRight=RGB(255, 0, 0));
|
||||
BOOL GetDrawActivePage();
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Display percentage
|
||||
// 40 <= nPortion <=100
|
||||
void SetShowPortion(int nPortion=100);
|
||||
int GetShowPortion();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// protected member for derived class
|
||||
protected:
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Window list
|
||||
CList<CWnd *,CWnd *> m_PageList;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Activate window cursor
|
||||
CWnd *m_pActivePage;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Full screen sign
|
||||
BOOL m_bFullScreen;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Multiple-window sign
|
||||
BOOL m_bMultiScreen;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Auto adjust sign
|
||||
BOOL m_bAutoAdjustPos;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Frame sign
|
||||
BOOL m_bDrawActive;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Display percentage(40-100)
|
||||
int m_nShowPortion;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// private member for inter user
|
||||
private:
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Update list. Remove the invalid nodes among it and then return node amount.
|
||||
int UpdateList();
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get window postion in according to the small window serial number and displayed position
|
||||
virtual void CalcPageRect(LPRECT lpRect,int nIndex,int nPageCount);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get displayed zone in pre-defined proportion (11/8)
|
||||
void AdjustRect(LPRECT lpRect);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Get displayed zone in proportion
|
||||
void GetShowRect(LPRECT lpRect);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Activate window frame
|
||||
void DrawActivePage(BOOL bFlag);
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Window frame color
|
||||
COLORREF m_clrTopLeft;
|
||||
COLORREF m_clrBottomRight;
|
||||
|
||||
///////////////////////////////////////////////////
|
||||
// Save original window message when in full screen to restore window.
|
||||
WINDOWPLACEMENT _temppl; //window's placement
|
||||
CWnd * _tempparent; //window's parent
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_BSWNDCONTAINER_H__73CB8E46_8ED9_4C36_BA91_29D5F5BB05DE__INCLUDED_)
|
||||
177
fast/Fast.cpp
Normal file
177
fast/Fast.cpp
Normal file
@@ -0,0 +1,177 @@
|
||||
|
||||
// MFCApplication6.cpp : <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "afxwinappex.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "Fast.h"
|
||||
#include "FastMainFrm.h"
|
||||
|
||||
#include "FastMainDoc.h"
|
||||
#include "FastMainView.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CMFCApplication6App
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFastApp, CWinApp)
|
||||
ON_COMMAND(ID_APP_ABOUT, &CFastApp::OnAppAbout)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ı<EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
|
||||
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CMFCApplication6App <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CFastApp::CFastApp()
|
||||
{
|
||||
// TODO: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD> ID <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>滻ΪΨһ<CEA8><D2BB> ID <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
//Ϊ CompanyName.ProductName.SubProduct.VersionInformation
|
||||
SetAppID(_T("MFCApplication6.AppID.NoVersion"));
|
||||
|
||||
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>룬
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ij<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> InitInstance <20><>
|
||||
}
|
||||
|
||||
// Ψһ<CEA8><D2BB>һ<EFBFBD><D2BB> CMFCApplication6App <20><><EFBFBD><EFBFBD>
|
||||
|
||||
CFastApp theApp;
|
||||
CPlayAPI g_PlayAPI;
|
||||
|
||||
|
||||
// CMFCApplication6App <20><>ʼ<EFBFBD><CABC>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
BOOL CFastApp::InitInstance()
|
||||
{
|
||||
CWinApp::InitInstance();
|
||||
|
||||
|
||||
char path[1000];
|
||||
int filelen = GetModuleFileName(NULL, path, 1000);
|
||||
int i = filelen;
|
||||
while (path[i] != '\\')i--;
|
||||
path[i + 1] = '\0';
|
||||
m_strModulePath = path;
|
||||
|
||||
|
||||
g_PlayAPI.LoadPlayDll();
|
||||
|
||||
// <20><>ʼ<EFBFBD><CABC> OLE <20><>
|
||||
if (!AfxOleInit())
|
||||
{
|
||||
AfxMessageBox(IDP_OLE_INIT_FAILED);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
EnableTaskbarInteraction(FALSE);
|
||||
|
||||
// ʹ<><CAB9> RichEdit <20>ؼ<EFBFBD><D8BC><EFBFBD>Ҫ AfxInitRichEdit2()
|
||||
// AfxInitRichEdit2();
|
||||
|
||||
// <20><><EFBFBD><D7BC>ʼ<EFBFBD><CABC>
|
||||
// <20><><EFBFBD><EFBFBD>δʹ<CEB4><CAB9><EFBFBD><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD>ܲ<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>С
|
||||
// <20><><EFBFBD>տ<EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>ļ<EFBFBD><C4BC>Ĵ<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>Ӧ<EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ض<EFBFBD><D8B6><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ洢<DAB4><E6B4A2><EFBFBD>õ<EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// TODO: Ӧ<>ʵ<EFBFBD><CAB5>ĸ<DEB8><C4B8>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>˾<EFBFBD><CBBE><EFBFBD><EFBFBD>֯<EFBFBD><D6AF>
|
||||
SetRegistryKey(_T("Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɵı<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>"));
|
||||
LoadStdProfileSettings(4); // <20><><EFBFBD>ر<EFBFBD> INI <20>ļ<EFBFBD>ѡ<EFBFBD><D1A1>(<28><><EFBFBD><EFBFBD> MRU)
|
||||
|
||||
|
||||
// ע<><D7A2>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ģ<EFBFBD>塣 <20>ĵ<EFBFBD>ģ<EFBFBD><C4A3>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4>ں<EFBFBD><DABA><EFBFBD>ͼ֮<CDBC><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CSingleDocTemplate* pDocTemplate;
|
||||
pDocTemplate = new CSingleDocTemplate(
|
||||
IDR_MAINFRAME,
|
||||
RUNTIME_CLASS(CFastMainDoc),
|
||||
RUNTIME_CLASS(CFastMainFrame), // <20><> SDI <20><><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
RUNTIME_CLASS(CFastMainView));
|
||||
if (!pDocTemplate)
|
||||
return FALSE;
|
||||
AddDocTemplate(pDocTemplate);
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> shell <20><><EFBFBD>DDE<44><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
CCommandLineInfo cmdInfo;
|
||||
ParseCommandLine(cmdInfo);
|
||||
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
// <20><> /RegServer<65><72>/Register<65><72>/Unregserver <20><> /Unregister <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FALSE<53><45>
|
||||
if (!ProcessShellCommand(cmdInfo))
|
||||
return FALSE;
|
||||
|
||||
// Ψһ<CEA8><D2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѳ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>и<EFBFBD><D0B8><EFBFBD>
|
||||
m_pMainWnd->ShowWindow(SW_SHOW);
|
||||
m_pMainWnd->UpdateWindow();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int CFastApp::ExitInstance()
|
||||
{
|
||||
//TODO: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵĸ<D3B5><C4B8><EFBFBD><EFBFBD><EFBFBD>Դ
|
||||
AfxOleTerm(FALSE);
|
||||
|
||||
return CWinApp::ExitInstance();
|
||||
}
|
||||
|
||||
// CMFCApplication6App <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><F2A1B0B9>ڡ<EFBFBD><DAA1>˵<EFBFBD><CBB5><EFBFBD><EFBFBD><EFBFBD> CAboutDlg <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
|
||||
class CAboutDlg : public CDialogEx
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// <20>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
#endif
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
||||
|
||||
// ʵ<><CAB5>
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жԻ<D0B6><D4BB><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
void CFastApp::OnAppAbout()
|
||||
{
|
||||
CAboutDlg aboutDlg;
|
||||
aboutDlg.DoModal();
|
||||
}
|
||||
|
||||
// CMFCApplication6App <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
36
fast/Fast.h
Normal file
36
fast/Fast.h
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
// MFCApplication6.h : MFCApplication6 Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>
|
||||
//
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "<22>ڰ<EFBFBD><DAB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>stdafx.h<><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> PCH <20>ļ<EFBFBD>"
|
||||
#endif
|
||||
|
||||
#include "resource.h" // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#include "PlayApi.h"
|
||||
|
||||
// CMFCApplication6App:
|
||||
// <20>йش<D0B9><D8B4><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MFCApplication6.cpp
|
||||
//
|
||||
|
||||
class CFastApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CFastApp();
|
||||
|
||||
public:
|
||||
CString m_strModulePath;
|
||||
|
||||
// <20><>д
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
virtual int ExitInstance();
|
||||
|
||||
// ʵ<><CAB5>
|
||||
afx_msg void OnAppAbout();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CFastApp theApp;
|
||||
extern CPlayAPI g_PlayAPI;
|
||||
327
fast/Fast.rc
Normal file
327
fast/Fast.rc
Normal file
@@ -0,0 +1,327 @@
|
||||
//Microsoft Visual C++ <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD>Դ<EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20><> TEXTINCLUDE 2 <20><>Դ<EFBFBD><D4B4><EFBFBD>ɡ<EFBFBD>
|
||||
//
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
#include "targetver.h"
|
||||
#endif
|
||||
#include "afxres.h"
|
||||
#include "verrsrc.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#ifndef APSTUDIO_INVOKED\r\n"
|
||||
"#include ""targetver.h""\r\n"
|
||||
"#endif\r\n"
|
||||
"#include ""afxres.h""\r\n"
|
||||
"#include ""verrsrc.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
|
||||
"LANGUAGE 4, 2\r\n"
|
||||
"#include ""res\\Fast.rc2"" // <20><> Microsoft Visual C++ <20>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ\r\n"
|
||||
"#include ""l.CHS\\afxres.rc"" // <20><><EFBFBD><D7BC><EFBFBD><EFBFBD>\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// ͼ<><CDBC>
|
||||
//
|
||||
|
||||
// ID ֵ<><D6B5><EFBFBD>͵<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><E6A3AC>ȷ<EFBFBD><C8B7>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<CFB5>б<EFBFBD><D0B1><EFBFBD>һ<EFBFBD>¡<EFBFBD>
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
LANGUAGE 4, 2
|
||||
IDR_MAINFRAME ICON "res\\Fast.ico"
|
||||
IDR_MFCApplication6TYPE ICON "res\\FastMainDoc.ico"
|
||||
#endif
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
LANGUAGE 4, 2
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20>˵<EFBFBD>
|
||||
//
|
||||
|
||||
IDR_MAINFRAME MENU
|
||||
BEGIN
|
||||
POPUP "<22>ļ<EFBFBD>(&F)"
|
||||
BEGIN
|
||||
MENUITEM "<22>½<EFBFBD>(&N)\tCtrl+N", ID_FILE_NEW
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&O)...\tCtrl+O", ID_FILE_OPEN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&S)\tCtrl+S", ID_FILE_SAVE
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>Ϊ(&A)...", ID_FILE_SAVE_AS
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>", ID_FILE_MRU_FILE1,GRAYED
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22>˳<EFBFBD>(&X)", ID_APP_EXIT
|
||||
END
|
||||
POPUP "<22>༭(&E)"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&U)\tCtrl+Z", ID_EDIT_UNDO
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&T)\tCtrl+X", ID_EDIT_CUT
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD>(&C)\tCtrl+C", ID_EDIT_COPY
|
||||
MENUITEM "ճ<><D5B3>(&P)\tCtrl+V", ID_EDIT_PASTE
|
||||
END
|
||||
POPUP "<22><>ͼ(&V)"
|
||||
BEGIN
|
||||
MENUITEM "״̬<D7B4><CCAC>(&S)", ID_VIEW_STATUS_BAR
|
||||
END
|
||||
POPUP "<22><><EFBFBD><EFBFBD>(&H)"
|
||||
BEGIN
|
||||
MENUITEM "<22><><EFBFBD><EFBFBD> FastApp(&A)...", ID_APP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
IDR_MAINFRAME ACCELERATORS
|
||||
BEGIN
|
||||
"N", ID_FILE_NEW, VIRTKEY,CONTROL
|
||||
"O", ID_FILE_OPEN, VIRTKEY,CONTROL
|
||||
"S", ID_FILE_SAVE, VIRTKEY,CONTROL
|
||||
"Z", ID_EDIT_UNDO, VIRTKEY,CONTROL
|
||||
"X", ID_EDIT_CUT, VIRTKEY,CONTROL
|
||||
"C", ID_EDIT_COPY, VIRTKEY,CONTROL
|
||||
"V", ID_EDIT_PASTE, VIRTKEY,CONTROL
|
||||
VK_BACK, ID_EDIT_UNDO, VIRTKEY,ALT
|
||||
VK_DELETE, ID_EDIT_CUT, VIRTKEY,SHIFT
|
||||
VK_INSERT, ID_EDIT_COPY, VIRTKEY,CONTROL
|
||||
VK_INSERT, ID_EDIT_PASTE, VIRTKEY,SHIFT
|
||||
VK_F6, ID_NEXT_PANE, VIRTKEY
|
||||
VK_F6, ID_PREV_PANE, VIRTKEY,SHIFT
|
||||
END
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20>Ի<EFBFBD><D4BB><EFBFBD>
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 0, 0, 170, 62
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "<22><><EFBFBD><EFBFBD> MFCApplication6"
|
||||
FONT 9, "MS Shell Dlg"
|
||||
BEGIN
|
||||
ICON IDR_MAINFRAME,IDC_STATIC,14,14,21,20
|
||||
LTEXT "MFCApplication6<6E><36>1.0 <20><>",IDC_STATIC,42,14,114,8,SS_NOPREFIX
|
||||
LTEXT "Copyright (C) 2024",IDC_STATIC,42,26,114,8
|
||||
DEFPUSHBUTTON "ȷ<><C8B7>",IDOK,113,41,50,14,WS_GROUP
|
||||
END
|
||||
|
||||
IDD_MFCAPPLICATION6_FORM DIALOGEX 0, 0, 320, 200
|
||||
STYLE DS_SHELLFONT | WS_CHILD
|
||||
FONT 9, "MS Shell Dlg"
|
||||
BEGIN
|
||||
LTEXT "TODO: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ˶Ի<CBB6><D4BB><EFBFBD><EFBFBD>ϡ<EFBFBD>",IDC_STATIC,24,42,
|
||||
280,8
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20>汾
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS VS_FF_DEBUG
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS VOS_NT_WINDOWS32
|
||||
FILETYPE VFT_APP
|
||||
FILESUBTYPE VFT2_UNKNOWN
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "080404B0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "TODO: <<3C><>˾<EFBFBD><CBBE>>"
|
||||
VALUE "FileDescription", "MFCApplication6"
|
||||
VALUE "FileVersion", "1.0.0.1"
|
||||
VALUE "InternalName", "MFCApplication6.exe"
|
||||
VALUE "LegalCopyright", "TODO: (C) <<3C><>˾<EFBFBD><CBBE>><3E><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD>"
|
||||
VALUE "OriginalFilename","MFCApplication6.exe"
|
||||
VALUE "ProductName", "TODO: <<3C><>Ʒ<EFBFBD><C6B7>>"
|
||||
VALUE "ProductVersion", "1.0.0.1"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x0804, 1200
|
||||
END
|
||||
END
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO
|
||||
BEGIN
|
||||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 163
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 55
|
||||
END
|
||||
IDD_MFCAPPLICATION6_FORM, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 313
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 193
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
//
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDP_OLE_INIT_FAILED "OLE <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܡ<EFBFBD> <20><>ȷ<EFBFBD><C8B7> OLE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>İ汾<C4B0><E6B1BE>"
|
||||
END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
// <20><> Mac Ӧ<>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
||||
IDR_MAINFRAME "MFCApplication6\n\nMFCApplication6\n\n\nMFCApplication6.Document\nMFCApplication6.Document"
|
||||
|
||||
END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_APP_TITLE "MFCApplication6"
|
||||
AFX_IDS_IDLEMESSAGE "<22><><EFBFBD><EFBFBD>"
|
||||
END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_INDICATOR_EXT "EXT"
|
||||
ID_INDICATOR_CAPS "CAP"
|
||||
ID_INDICATOR_NUM "NUM"
|
||||
ID_INDICATOR_SCRL "SCRL"
|
||||
ID_INDICATOR_OVR "OVR"
|
||||
ID_INDICATOR_REC "REC"
|
||||
END
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
ID_FILE_NEW "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\n<>½<EFBFBD>"
|
||||
ID_FILE_OPEN "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_FILE_CLOSE "<22>رջ<D5BB>ĵ<EFBFBD>\n<>ر<EFBFBD>"
|
||||
ID_FILE_SAVE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_FILE_SAVE_AS "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\n<><6E><EFBFBD><EFBFBD>Ϊ"
|
||||
ID_APP_ABOUT "<22><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>汾<EFBFBD>źͰ<C5BA>Ȩ<EFBFBD><C8A8>Ϣ\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_APP_EXIT "<22>˳<EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\n<>˳<EFBFBD>"
|
||||
ID_FILE_MRU_FILE1 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE2 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE3 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE4 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE5 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE6 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE7 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE8 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE9 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE10 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE11 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE12 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE13 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE14 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE15 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_FILE_MRU_FILE16 "<22><EFBFBD><F2BFAAB4>ĵ<EFBFBD>"
|
||||
ID_NEXT_PANE "<22>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>"
|
||||
ID_PREV_PANE "<22>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>"
|
||||
ID_WINDOW_SPLIT "<22><><EFBFBD><EFBFBD><EEB6AF><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_CLEAR "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_CLEAR_ALL "<22><><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\nȫ<6E><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_COPY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_CUT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_FIND "<22><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_PASTE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\nճ<6E><D5B3>"
|
||||
ID_EDIT_REPEAT "<22>ظ<EFBFBD><D8B8><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>\n<>ظ<EFBFBD>"
|
||||
ID_EDIT_REPLACE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>滻<EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD>ı<EFBFBD>\n<>滻"
|
||||
ID_EDIT_SELECT_ALL "ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>\nȫѡ"
|
||||
ID_EDIT_UNDO "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_EDIT_REDO "<22><><EFBFBD><EFBFBD><EFBFBD>ϴγ<CFB4><CEB3><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>\n<><6E><EFBFBD><EFBFBD>"
|
||||
ID_VIEW_STATUS_BAR "<22><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>\n<>л<EFBFBD>״̬<D7B4><CCAC>"
|
||||
END
|
||||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
AFX_IDS_SCSIZE "<22><><EFBFBD>Ĵ<EFBFBD><C4B4>ڴ<EFBFBD>С"
|
||||
AFX_IDS_SCMOVE "<22><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>λ<EFBFBD><CEBB>"
|
||||
AFX_IDS_SCMINIMIZE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><D0A1>ͼ<EFBFBD><CDBC>"
|
||||
AFX_IDS_SCMAXIMIZE "<22><><EFBFBD><EFBFBD><EFBFBD>ڷŴ<DAB7><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD>"
|
||||
AFX_IDS_SCNEXTWINDOW "<22>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>"
|
||||
AFX_IDS_SCPREVWINDOW "<22>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>"
|
||||
AFX_IDS_SCCLOSE "<22>رջ<D5BB><EEB6AF><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>"
|
||||
AFX_IDS_SCRESTORE "<22><><EFBFBD><EFBFBD><EFBFBD>ڻָ<DABB><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С"
|
||||
AFX_IDS_SCTASKLIST "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>"
|
||||
END
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// <20><> TEXTINCLUDE 3 <20><>Դ<EFBFBD><D4B4><EFBFBD>ɡ<EFBFBD>
|
||||
//
|
||||
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
|
||||
LANGUAGE 4, 2
|
||||
#include "res\\Fast.rc2" // <20><> Microsoft Visual C++ <20>༭<EFBFBD><E0BCAD><EFBFBD><EFBFBD>Դ
|
||||
#include "l.CHS\\afxres.rc" // <20><><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
#endif // <20><><EFBFBD><EFBFBD> APSTUDIO_INVOKED
|
||||
237
fast/Fast.vcxproj
Normal file
237
fast/Fast.vcxproj
Normal file
@@ -0,0 +1,237 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{DF8ED0A5-CC46-45BF-A8A1-594F5F6EAB22}</ProjectGuid>
|
||||
<RootNamespace>Fast</RootNamespace>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
<Keyword>MFCProj</Keyword>
|
||||
<ProjectName>Fast</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v143</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<UseOfMfc>Dynamic</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="Shared">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\3rdparty\dahua\inc;$(SolutionDir)\3rdparty\opencv\inc</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\3rdparty\dahua\lib\win64;$(SolutionDir)\3rdparty\opencv\lib</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dhnetsdk.lib;dhconfigsdk.lib;dhplay.lib;opencv_core454d.lib;opencv_dnn454d.lib;opencv_features2d454d.lib;opencv_flann454d.lib;opencv_highgui454d.lib;opencv_imgcodecs454d.lib;opencv_imgproc454d.lib;opencv_ml454d.lib;opencv_video454d.lib;opencv_videoio454d.lib;opencv_face454d.lib;opencv_objdetect454d.lib;opencv_photo454d.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)\3rdparty\dahua\inc;$(SolutionDir)\3rdparty\opencv\inc</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)\3rdparty\dahua\lib\win64;$(SolutionDir)\3rdparty\opencv\lib</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>dhnetsdk.lib;dhconfigsdk.lib;dhplay.lib;opencv_core454.lib;opencv_dnn454.lib;opencv_features2d454.lib;opencv_flann454.lib;opencv_highgui454.lib;opencv_imgcodecs454.lib;opencv_imgproc454.lib;opencv_ml454.lib;opencv_video454.lib;opencv_videoio454.lib;opencv_face454.lib;opencv_objdetect454.lib;opencv_photo454.lib</AdditionalDependencies>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0804</Culture>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="BSWndContainer.h" />
|
||||
<ClInclude Include="FastMainFrm.h" />
|
||||
<ClInclude Include="Fast.h" />
|
||||
<ClInclude Include="FastMainDoc.h" />
|
||||
<ClInclude Include="FastMainView.h" />
|
||||
<ClInclude Include="PlayApi.h" />
|
||||
<ClInclude Include="PlayWnd.h" />
|
||||
<ClInclude Include="PtzScreen.h" />
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="BSWndContainer.cpp" />
|
||||
<ClCompile Include="FastMainFrm.cpp" />
|
||||
<ClCompile Include="Fast.cpp" />
|
||||
<ClCompile Include="FastMainDoc.cpp" />
|
||||
<ClCompile Include="FastMainView.cpp" />
|
||||
<ClCompile Include="PlayApi.cpp" />
|
||||
<ClCompile Include="PlayWnd.cpp" />
|
||||
<ClCompile Include="PtzScreen.cpp" />
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Fast.rc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\Fast.rc2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="res\Fast.ico" />
|
||||
<Image Include="res\FastMainDoc.ico" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<UserProperties RESOURCE_FILE="Fast.rc" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
102
fast/Fast.vcxproj.filters
Normal file
102
fast/Fast.vcxproj.filters
Normal file
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="源文件">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="头文件">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="资源文件">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="ReadMe.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Resource.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FastMainFrm.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FastMainDoc.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="FastMainView.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Fast.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PlayApi.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PlayWnd.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PtzScreen.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="BSWndContainer.h">
|
||||
<Filter>头文件</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FastMainDoc.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FastMainFrm.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="FastMainView.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Fast.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PlayApi.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PlayWnd.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PtzScreen.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="BSWndContainer.cpp">
|
||||
<Filter>源文件</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="res\Fast.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
<Image Include="res\FastMainDoc.ico">
|
||||
<Filter>资源文件</Filter>
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Fast.rc">
|
||||
<Filter>资源文件</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="res\Fast.rc2">
|
||||
<Filter>资源文件</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
137
fast/FastMainDoc.cpp
Normal file
137
fast/FastMainDoc.cpp
Normal file
@@ -0,0 +1,137 @@
|
||||
|
||||
// MFCApplication6Doc.cpp : CFastMainDoc <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
// SHARED_HANDLERS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ATL <20><>Ŀ<EFBFBD>н<EFBFBD><D0BD>ж<EFBFBD><D0B6>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>롣
|
||||
#ifndef SHARED_HANDLERS
|
||||
#include "Fast.h"
|
||||
#endif
|
||||
|
||||
#include "FastMainDoc.h"
|
||||
|
||||
#include <propkey.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
// CFastMainDoc
|
||||
|
||||
IMPLEMENT_DYNCREATE(CFastMainDoc, CDocument)
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFastMainDoc, CDocument)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CFastMainDoc <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
||||
|
||||
CFastMainDoc::CFastMainDoc()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>Թ<EFBFBD><D4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
|
||||
CFastMainDoc::~CFastMainDoc()
|
||||
{
|
||||
}
|
||||
|
||||
BOOL CFastMainDoc::OnNewDocument()
|
||||
{
|
||||
if (!CDocument::OnNewDocument())
|
||||
return FALSE;
|
||||
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// (SDI <20>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><C3B8>ĵ<EFBFBD>)
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// CFastMainDoc <20><><EFBFBD>л<EFBFBD>
|
||||
|
||||
void CFastMainDoc::Serialize(CArchive& ar)
|
||||
{
|
||||
if (ar.IsStoring())
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ӵ洢<D3B4><E6B4A2><EFBFBD><EFBFBD>
|
||||
}
|
||||
else
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>Ӽ<EFBFBD><D3BC>ش<EFBFBD><D8B4><EFBFBD>
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SHARED_HANDLERS
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>֧<EFBFBD><D6A7>
|
||||
void CFastMainDoc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds)
|
||||
{
|
||||
// <20>Ĵ˴<C4B4><CBB4><EFBFBD><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
dc.FillSolidRect(lprcBounds, RGB(255, 255, 255));
|
||||
|
||||
CString strText = _T("TODO: implement thumbnail drawing here");
|
||||
LOGFONT lf;
|
||||
|
||||
CFont* pDefaultGUIFont = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT));
|
||||
pDefaultGUIFont->GetLogFont(&lf);
|
||||
lf.lfHeight = 36;
|
||||
|
||||
CFont fontDraw;
|
||||
fontDraw.CreateFontIndirect(&lf);
|
||||
|
||||
CFont* pOldFont = dc.SelectObject(&fontDraw);
|
||||
dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK);
|
||||
dc.SelectObject(pOldFont);
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD><D6A7>
|
||||
void CFastMainDoc::InitializeSearchContent()
|
||||
{
|
||||
CString strSearchContent;
|
||||
// <20><><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD>
|
||||
// <20><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>Ӧ<EFBFBD>ɡ<EFBFBD>;<3B><><EFBFBD>ָ<EFBFBD>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>: strSearchContent = _T("point;rectangle;circle;ole object;")<29><>
|
||||
SetSearchContent(strSearchContent);
|
||||
}
|
||||
|
||||
void CFastMainDoc::SetSearchContent(const CString& value)
|
||||
{
|
||||
if (value.IsEmpty())
|
||||
{
|
||||
RemoveChunk(PKEY_Search_Contents.fmtid, PKEY_Search_Contents.pid);
|
||||
}
|
||||
else
|
||||
{
|
||||
CMFCFilterChunkValueImpl *pChunk = NULL;
|
||||
ATLTRY(pChunk = new CMFCFilterChunkValueImpl);
|
||||
if (pChunk != NULL)
|
||||
{
|
||||
pChunk->SetTextValue(PKEY_Search_Contents, value, CHUNK_TEXT);
|
||||
SetChunkValue(pChunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif // SHARED_HANDLERS
|
||||
|
||||
// CFastMainDoc <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#ifdef _DEBUG
|
||||
void CFastMainDoc::AssertValid() const
|
||||
{
|
||||
CDocument::AssertValid();
|
||||
}
|
||||
|
||||
void CFastMainDoc::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CDocument::Dump(dc);
|
||||
}
|
||||
#endif //_DEBUG
|
||||
|
||||
|
||||
// CFastMainDoc <20><><EFBFBD><EFBFBD>
|
||||
48
fast/FastMainDoc.h
Normal file
48
fast/FastMainDoc.h
Normal file
@@ -0,0 +1,48 @@
|
||||
|
||||
// MFCApplication6Doc.h : CFastMainDoc <20><><EFBFBD>Ľӿ<C4BD>
|
||||
//
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
class CFastMainDoc : public CDocument
|
||||
{
|
||||
protected: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
CFastMainDoc();
|
||||
DECLARE_DYNCREATE(CFastMainDoc)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
|
||||
// <20><>д
|
||||
public:
|
||||
virtual BOOL OnNewDocument();
|
||||
virtual void Serialize(CArchive& ar);
|
||||
#ifdef SHARED_HANDLERS
|
||||
virtual void InitializeSearchContent();
|
||||
virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);
|
||||
#endif // SHARED_HANDLERS
|
||||
|
||||
// ʵ<><CAB5>
|
||||
public:
|
||||
virtual ~CFastMainDoc();
|
||||
#ifdef _DEBUG
|
||||
virtual void AssertValid() const;
|
||||
virtual void Dump(CDumpContext& dc) const;
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
||||
// <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD>Ϣӳ<CFA2>亯<EFBFBD><E4BAAF>
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
#ifdef SHARED_HANDLERS
|
||||
// <20><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD> Helper <20><><EFBFBD><EFBFBD>
|
||||
void SetSearchContent(const CString& value);
|
||||
#endif // SHARED_HANDLERS
|
||||
};
|
||||
95
fast/FastMainFrm.cpp
Normal file
95
fast/FastMainFrm.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
|
||||
// MainFrm.cpp : CFastMainFrame <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Fast.h"
|
||||
|
||||
#include "FastMainFrm.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
// CFastMainFrame
|
||||
|
||||
IMPLEMENT_DYNCREATE(CFastMainFrame, CFrameWnd)
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFastMainFrame, CFrameWnd)
|
||||
ON_WM_CREATE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
static UINT indicators[] =
|
||||
{
|
||||
ID_SEPARATOR, // ״̬<D7B4><CCAC>ָʾ<D6B8><CABE>
|
||||
ID_INDICATOR_CAPS,
|
||||
ID_INDICATOR_NUM,
|
||||
ID_INDICATOR_SCRL,
|
||||
};
|
||||
|
||||
// CFastMainFrame <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
||||
|
||||
CFastMainFrame::CFastMainFrame()
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӳ<EFBFBD>Ա<EFBFBD><D4B1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
}
|
||||
|
||||
CFastMainFrame::~CFastMainFrame()
|
||||
{
|
||||
}
|
||||
|
||||
int CFastMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
if (!m_wndStatusBar.Create(this))
|
||||
{
|
||||
TRACE0("δ<EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD>\n");
|
||||
return -1; // δ<>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
}
|
||||
m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>
|
||||
ShowWindow(SW_SHOWMAXIMIZED);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL CFastMainFrame::PreCreateWindow(CREATESTRUCT& cs)
|
||||
{
|
||||
if( !CFrameWnd::PreCreateWindow(cs) )
|
||||
return FALSE;
|
||||
// TODO: <20>ڴ˴<DAB4>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
||||
// CREATESTRUCT cs <20><><EFBFBD>Ĵ<DEB8><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
|
||||
// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>ť
|
||||
cs.style &= ~WS_MAXIMIZEBOX;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// CFastMainFrame <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#ifdef _DEBUG
|
||||
void CFastMainFrame::AssertValid() const
|
||||
{
|
||||
CFrameWnd::AssertValid();
|
||||
}
|
||||
|
||||
void CFastMainFrame::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CFrameWnd::Dump(dc);
|
||||
}
|
||||
#endif //_DEBUG
|
||||
|
||||
|
||||
// CFastMainFrame <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
void CFastMainFrame::ActivateFrame(int nCmdShow)
|
||||
{
|
||||
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD>ר<EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>
|
||||
CFrameWnd::ActivateFrame(nCmdShow);
|
||||
}
|
||||
44
fast/FastMainFrm.h
Normal file
44
fast/FastMainFrm.h
Normal file
@@ -0,0 +1,44 @@
|
||||
|
||||
// MainFrm.h : CFastMainFrame <20><><EFBFBD>Ľӿ<C4BD>
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
class CFastMainFrame : public CFrameWnd
|
||||
{
|
||||
|
||||
protected: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
CFastMainFrame();
|
||||
DECLARE_DYNCREATE(CFastMainFrame)
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
|
||||
// <20><>д
|
||||
public:
|
||||
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
||||
|
||||
// ʵ<><CAB5>
|
||||
public:
|
||||
virtual ~CFastMainFrame();
|
||||
#ifdef _DEBUG
|
||||
virtual void AssertValid() const;
|
||||
virtual void Dump(CDumpContext& dc) const;
|
||||
#endif
|
||||
|
||||
protected: // <20>ؼ<EFBFBD><D8BC><EFBFBD>Ƕ<EFBFBD><C7B6><EFBFBD><EFBFBD>Ա
|
||||
CStatusBar m_wndStatusBar;
|
||||
|
||||
// <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD>Ϣӳ<CFA2>亯<EFBFBD><E4BAAF>
|
||||
protected:
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
virtual void ActivateFrame(int nCmdShow = -1);
|
||||
};
|
||||
|
||||
|
||||
174
fast/FastMainView.cpp
Normal file
174
fast/FastMainView.cpp
Normal file
@@ -0,0 +1,174 @@
|
||||
|
||||
// MFCApplication6View.cpp : FastMainView <20><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
// SHARED_HANDLERS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// ATL <20><>Ŀ<EFBFBD>н<EFBFBD><D0BD>ж<EFBFBD><D0B6>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>롣
|
||||
#ifndef SHARED_HANDLERS
|
||||
#include "Fast.h"
|
||||
#endif
|
||||
|
||||
#include "FastMainDoc.h"
|
||||
#include "FastMainView.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// FastMainView
|
||||
|
||||
IMPLEMENT_DYNCREATE(CFastMainView, CFormView)
|
||||
|
||||
BEGIN_MESSAGE_MAP(CFastMainView, CFormView)
|
||||
ON_WM_SIZE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
// FastMainView <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>
|
||||
|
||||
CFastMainView::CFastMainView()
|
||||
: CFormView(IDD_MFCAPPLICATION6_FORM)
|
||||
{
|
||||
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
|
||||
CFastMainView::~CFastMainView()
|
||||
{
|
||||
}
|
||||
|
||||
void CFastMainView::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CFormView::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BOOL CFastMainView::PreCreateWindow(CREATESTRUCT& cs)
|
||||
{
|
||||
// TODO: <20>ڴ˴<DAB4>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
|
||||
// CREATESTRUCT cs <20><><EFBFBD>Ĵ<DEB8><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
|
||||
|
||||
return CFormView::PreCreateWindow(cs);
|
||||
}
|
||||
|
||||
void CFastMainView::OnInitialUpdate()
|
||||
{
|
||||
CFormView::OnInitialUpdate();
|
||||
GetParentFrame()->RecalcLayout();
|
||||
//ResizeParentToFit();
|
||||
|
||||
InitNetSDK();
|
||||
|
||||
m_ptzScreen.Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, 1981);
|
||||
UpdataScreenPos();
|
||||
m_ptzScreen.ShowWindow(SW_SHOW);
|
||||
/*m_ptzScreen.SetCallBack(MessageProcFunc, (LDWORD)this,
|
||||
GetParamsFunc, (LDWORD)this,
|
||||
SetParamsFunc, (LDWORD)this,
|
||||
RectEventFunc, (LDWORD)this);*/
|
||||
m_ptzScreen.SetShowPlayWin(SPLIT16, 0);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//Callback function when device disconnected
|
||||
void CALLBACK DisConnectFunc(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser)
|
||||
{
|
||||
if (dwUser == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/*
|
||||
CRealPlayAndPTZControlDlg *pThis = (CRealPlayAndPTZControlDlg *)dwUser;
|
||||
HWND hWnd = pThis->GetSafeHwnd();
|
||||
if (NULL == hWnd)
|
||||
{
|
||||
return;
|
||||
}
|
||||
PostMessage(hWnd, WM_DEVICE_DISCONNECT, NULL, NULL);*/
|
||||
}
|
||||
|
||||
|
||||
void CALLBACK ReConnectFunc(LLONG lLoginID, char *pchDVRIP, LONG nDVRPort, LDWORD dwUser)
|
||||
{
|
||||
if (dwUser == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
/*
|
||||
CRealPlayAndPTZControlDlg *pThis = (CRealPlayAndPTZControlDlg *)dwUser;
|
||||
HWND hWnd = pThis->GetSafeHwnd();
|
||||
if (NULL == hWnd)
|
||||
{
|
||||
return;
|
||||
}
|
||||
PostMessage(hWnd, WM_DEVICE_RECONNECT, NULL, NULL);*/
|
||||
}
|
||||
|
||||
//Initialize net SDK
|
||||
void CFastMainView::InitNetSDK()
|
||||
{
|
||||
//Initialize net sdk, All callback begins here.
|
||||
BOOL bSuccess = CLIENT_Init(DisConnectFunc, (LDWORD)this);
|
||||
if (!bSuccess)
|
||||
{
|
||||
//Display function error occurrs reason.
|
||||
//LastError();
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_SET_PRINT_INFO stLogPrintInfo = { sizeof(stLogPrintInfo) };
|
||||
CLIENT_LogOpen(&stLogPrintInfo);
|
||||
CLIENT_SetAutoReconnect(ReConnectFunc, (LDWORD)this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void CFastMainView::UpdataScreenPos()
|
||||
{
|
||||
GetClientRect(&m_clientRect);
|
||||
|
||||
//m_screenRect = m_clientRect;
|
||||
m_ptzScreen.MoveWindow(m_clientRect);
|
||||
}
|
||||
|
||||
|
||||
// FastMainView <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#ifdef _DEBUG
|
||||
void CFastMainView::AssertValid() const
|
||||
{
|
||||
CFormView::AssertValid();
|
||||
}
|
||||
|
||||
void CFastMainView::Dump(CDumpContext& dc) const
|
||||
{
|
||||
CFormView::Dump(dc);
|
||||
}
|
||||
/*
|
||||
CFastMainDoc* CFastMainView::GetDocument() const // <20>ǵ<EFBFBD><C7B5>汾<D4B0><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
{
|
||||
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFastMainDoc)));
|
||||
return (CFastMainDoc*)m_pDocument;
|
||||
}*/
|
||||
#endif //_DEBUG
|
||||
|
||||
|
||||
// FastMainView <20><>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
void CFastMainView::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
CFormView::OnSize(nType, cx, cy);
|
||||
|
||||
if (nType == SIZE_MAXHIDE || nType == SIZE_MAXSHOW)
|
||||
{
|
||||
UpdataScreenPos();
|
||||
}
|
||||
}
|
||||
59
fast/FastMainView.h
Normal file
59
fast/FastMainView.h
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
// MFCApplication6View.h : CFastMainView <20><><EFBFBD>Ľӿ<C4BD>
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "ptzScreen.h"
|
||||
|
||||
class CFastMainView : public CFormView
|
||||
{
|
||||
protected: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD>
|
||||
CFastMainView();
|
||||
DECLARE_DYNCREATE(CFastMainView)
|
||||
|
||||
public:
|
||||
#ifdef AFX_DESIGN_TIME
|
||||
enum{ IDD = IDD_MFCAPPLICATION6_FORM };
|
||||
#endif
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
//CFastMainDoc* GetDocument() const;
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
public:
|
||||
|
||||
// <20><>д
|
||||
public:
|
||||
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV ֧<><D6A7>
|
||||
virtual void OnInitialUpdate(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD>
|
||||
void UpdataScreenPos();
|
||||
|
||||
// ʵ<><CAB5>
|
||||
public:
|
||||
virtual ~CFastMainView();
|
||||
#ifdef _DEBUG
|
||||
virtual void AssertValid() const;
|
||||
virtual void Dump(CDumpContext& dc) const;
|
||||
#endif
|
||||
|
||||
public:
|
||||
CPtzScreen m_ptzScreen;
|
||||
CRect m_clientRect;
|
||||
protected:
|
||||
|
||||
// <20><><EFBFBD>ɵ<EFBFBD><C9B5><EFBFBD>Ϣӳ<CFA2>亯<EFBFBD><E4BAAF>
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
afx_msg void OnSize(UINT nType, int cx, int cy);
|
||||
void InitNetSDK();
|
||||
};
|
||||
|
||||
#ifndef _DEBUG // MFCApplication6View.cpp <20>еĵ<D0B5><C4B5>汾
|
||||
inline CFastMainDoc* CFastMainView::GetDocument() const
|
||||
{ return reinterpret_cast<CFastMainDoc*>(m_pDocument); }
|
||||
#endif
|
||||
|
||||
320
fast/MessageText.h
Normal file
320
fast/MessageText.h
Normal file
@@ -0,0 +1,320 @@
|
||||
#ifndef MESSAGETEXT_H
|
||||
#define MESSAGETEXT_H
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#define MSG_ERROR_PASSWORD "<22><><EFBFBD>벻<EFBFBD><EBB2BB>ȷ"
|
||||
#define MSG_ERROR_USER "<22>ʻ<EFBFBD><CABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ERROR_TIMEOUT "<22>ȴ<EFBFBD><C8B4><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>س<EFBFBD>ʱ"
|
||||
#define MSG_ERROR_RELOGGIN "<22>ʺ<EFBFBD><CABA>ѵ<EFBFBD>¼"
|
||||
#define MSG_ERROR_LOCKED "<22>ʺ<EFBFBD><CABA>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ERROR_BLOCKLIST "<22>ʺ<EFBFBD><CABA>ѱ<EFBFBD><D1B1><EFBFBD>Ϊ<EFBFBD><CEAA>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>"
|
||||
#define MSG_ERROR_BUSY "<22><>Դ<EFBFBD><D4B4><EFBFBD>㣬ϵͳæ"
|
||||
#define MSG_ERROR_CONNECT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_ERROR_NETWORK "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_ERROR_LISTEN "<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEVICE_DISCONNECT "<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>"
|
||||
|
||||
#define MSG_ERROR_IOCTRL_IN "<22><><EFBFBD><EFBFBD>IO<49><4F><EFBFBD>벻<EFBFBD><EBB2BB><EFBFBD><EFBFBD>"
|
||||
#define MSG_ERROR_IOCTRL_OUT "<22><><EFBFBD><EFBFBD>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ERROR_ALARMCHL_OVERMAX "<22><><EFBFBD>뱨<EFBFBD><EBB1A8>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ"
|
||||
#define MSG_ERROR_ALARM_STATUS "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>"
|
||||
|
||||
#define MSG_CLIENTSTATE_DISKERR "<22><>Ӳ<EFBFBD><D3B2>:"
|
||||
#define MSG_CLIENTSTATE_ALARM "<22><><EFBFBD><EFBFBD>:"
|
||||
#define MSG_CLIENTSTATE_ALMDEC "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_CLIENTSTATE_RECORDING "¼<><C2BC>:"
|
||||
#define MSG_CLIENTSTATE_MOTION "<22><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>:"
|
||||
#define MSG_CLIENTSTATE_VIDEOLOST "<22><>Ƶ<EFBFBD><C6B5>ʧ:"
|
||||
#define MSG_CLIENTSTATE_CLIENTSTATE "״̬:"
|
||||
#define MSG_CLIENTSTATE_SOUND "<22><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_CLIENTSTATE_SHELTER "<22>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_CLIENTSTATE_DISKFULL "Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_CLIENTSTATE_SERIAL "<22><><EFBFBD>к<EFBFBD>:"
|
||||
|
||||
#define MSG_WORKSTATE_SHELTER "<22>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>:"
|
||||
#define MSG_WORKSTATE_RECORDING "¼<><C2BC>״̬:"
|
||||
|
||||
#define MSG_WORKSTATE_CLIENTSTATE "<22>豸״̬ : "
|
||||
#define MSG_WORKSTATE_NORMAL "<22><><EFBFBD><EFBFBD>"
|
||||
#define MSG_WORKSTATE_CPUTOOHIGH "cpuռ<75>ù<EFBFBD><C3B9><EFBFBD>"
|
||||
#define MSG_WORKSTATE_HARDWAREEROR "Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_WORKSTATE_UNKNOWNEEROR "<22><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_WORKSTATE_DISPLAYSTATE " <20>豸<EFBFBD><E8B1B8>ʾ״̬: "
|
||||
#define MSG_WORKSTATE_UNNORMAL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_WORKSTATE_RECORDCHL "¼<><C2BC>ͨ<EFBFBD><CDA8> : "
|
||||
#define MSG_WORKSTATE_VIDEOLOSTCHL "<22>źŶ<C5BA>ʧͨ<CAA7><CDA8>: "
|
||||
#define MSG_WORKSTATE_HARDWAREERRCHL "Ӳ<><D3B2><EFBFBD>쳣ͨ<ECB3A3><CDA8>: "
|
||||
#define MSG_WORKSTATE_VIDEOLOSTCHL "<22>źŶ<C5BA>ʧͨ<CAA7><CDA8>: "
|
||||
#define MSG_WORKSTATE_ALARMINPUT "<22><><EFBFBD><EFBFBD><EFBFBD>˿ڱ<CBBF><DAB1><EFBFBD>: "
|
||||
#define MSG_WORKSTATE_ALARMOUTPUT "<22><><EFBFBD><EFBFBD><EFBFBD>˿ڱ<CBBF><DAB1><EFBFBD>: "
|
||||
|
||||
#define MSG_PTZCTRL_NOCHANNEL "ͨ<><CDA8>û<EFBFBD><C3BB><EFBFBD><EFBFBD>"
|
||||
#define MSG_PTZCTRL_CTRLFAILED "<22><>̨<EFBFBD>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
|
||||
#define MSG_DEMODLG_SPLITTYPE_1 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_SPLITTYPE_4 "<22>Ļ<EFBFBD><C4BB><EFBFBD>"
|
||||
#define MSG_DEMODLG_SPLITTYPE_9 "<22>Ż<EFBFBD><C5BB><EFBFBD>"
|
||||
#define MSG_DEMODLG_SPLITTYPE_16 "ʮ<><CAAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_CHECKSEL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>ѡ<EFBFBD><D1A1>"
|
||||
#define MSG_DEMODLG_PLAYING "<22><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>,<2C><><EFBFBD>ȹرյ<D8B1>ǰ<EFBFBD><C7B0><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>"
|
||||
#define MSG_DEMODLG_OPENCHLFAILED "<22><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>Ѿ<EFBFBD><D1BE>ڱ<EFBFBD><DAB1>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_NOPREVIEW "<22><DEB6><E0BBAD>Ԥ<EFBFBD><D4A4>"
|
||||
#define MSG_DEMODLG_SAVEDATAFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_PLAYFAILED "<22><EFBFBD><F2BFAAB2><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_PTZCMDFAILED "<22><>̨<EFBFBD><CCA8><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EEB2BB><CAB5>"
|
||||
#define MSG_DEMODLG_NOTOPENNED "<22><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_PTZCTRLFAILED "<22><>̨<EFBFBD><CCA8><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_NOTPLAYING "<22><>ǰ<EFBFBD><C7B0><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>"
|
||||
#define MSG_DEMODLG_PLAYCTRLFAILED "<22><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_PAUSE " <20><>ͣ "
|
||||
#define MSG_DEMODLG_PLAY " <20><><EFBFBD><EFBFBD> "
|
||||
#define MSG_DEMODLG_STOPPLAYFAILED "ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_CANTCAPTURE "<22><>ǰδ<C7B0><CEB4><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>,<2C><><EFBFBD><EFBFBD>ץͼ"
|
||||
#define MSG_DEMODLG_CAPTUREFAILED "ץͼʧ<CDBC><CAA7>"
|
||||
#define MSG_DEMODLG_CANTFORCE_I "<22><>ǰͨ<C7B0><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>,<2C><><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>I֡"
|
||||
#define MSG_DEMODLG_FAILEDFORCE_I "ǿ<><C7BF>I֡ʧ<D6A1><CAA7>"
|
||||
#define MSG_DEMODLG_REALSAVE_STOPPED "<22><><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD>ѹر<D1B9>"
|
||||
#define MSG_DEMODLG_MONITOR "Ԥ<><D4A4>"
|
||||
#define MSG_DEMODLG_PREVIEW "Ԥ<><D4A4>"
|
||||
#define MSG_DEMODLG_PLAYBACKCHL "<22>ط<EFBFBD>ͨ<EFBFBD><CDA8>"
|
||||
#define MSG_DEMODLG_CYCLEMONITOR "<22><>ѭ"
|
||||
#define MSG_DEMODLG_UPDATING "<22><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>...."
|
||||
#define MSG_DEMODLG_UPDATEFAILED "<22><><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_NOTMONITOR "<22><>ǰ<EFBFBD><C7B0><EFBFBD>治<EFBFBD><E6B2BB>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_OPENTALKFAILED "<22>Խ<F2BFAAB6>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_CLOSETALKFAILED "<22>رնԽ<D5B6>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_OPENFILEFAILED "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_DEMODLG_ERROR_CYCLING "<22><>ǰͨ<C7B0><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ"
|
||||
#define MSG_DEMODLG_REBOOTFAILED "<22><><EFBFBD><EFBFBD><EFBFBD>豸ʧ<E8B1B8><CAA7>"
|
||||
#define MSG_DEMODLG_REBOOTDONE "<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_DEMODLG_SHUTDOWNFAILED "<22>ر<EFBFBD><D8B1>豸ʧ<E8B1B8><CAA7>"
|
||||
#define MSG_DEMODLG_SHUTDOWNDONE "<22>豸<EFBFBD>ѹر<D1B9>"
|
||||
|
||||
#define MSG_RECORDCTRL_SETUPFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_RECORDCTRL_QUERYSTATEFAILED "<22><>ȡ¼<C8A1><C2BC>״̬<D7B4><CCAC><EFBFBD><EFBFBD>"
|
||||
|
||||
#define MSG_SCHRECORD_NODEVICE "<22><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>豸"
|
||||
#define MSG_SCHRECORD_CHOOSEDEVICE "<22>豸ѡ<E8B1B8><D1A1>"
|
||||
#define MSG_SCHRECORD_CHLNO_INVALID "ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч"
|
||||
#define MSG_SCHRECORD_CHLNO "ͨ<><CDA8><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_TIMEINPUT_ERR "ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_TIMEINPUT "ʱ<><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_QUERYFAILED "<22><>ѯʧ<D1AF><CAA7>"
|
||||
#define MSG_SCHRECORD_NORECORD "<22><><EFBFBD><EFBFBD>¼"
|
||||
#define MSG_SCHRECORD_QUERYTYPE_LIST "<22>б<EFBFBD><D0B1><EFBFBD>ѯ"
|
||||
#define MSG_SCHRECORD_QUERYTYPE_ALARM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ"
|
||||
#define MSG_SCHRECORD_QUERYTYPE_CARD "<22><><EFBFBD>Ų<EFBFBD>ѯ"
|
||||
#define MSG_SCHRECORD_DVC_AND_CHL "<22>豸<EFBFBD><E8B1B8>ͨ<EFBFBD><CDA8>"
|
||||
#define MSG_SCHRECORD_STARTTIME "<22><>ʼʱ<CABC><CAB1>"
|
||||
#define MSG_SCHRECORD_ENDTIME "<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>"
|
||||
#define MSG_SCHRECORD_SIZE "<22><>С"
|
||||
#define MSG_SCHRECORD_DOWNLORD_CB_ERR "<22><><EFBFBD>ػص<D8BB><D8B5><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_DOWNLOAD_FIN "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_DOWNLOADFILE_SEL "<22><><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>ѡ<EFBFBD><D1A1>Ҫ<EFBFBD><D2AA><EFBFBD>ص<EFBFBD><D8B5>ļ<EFBFBD>"
|
||||
#define MSG_SCHRECORD_DOWNLOAD "<22><>ʼ"
|
||||
#define MSG_SCHRECORD_CANCELDOWNLOAD "ֹͣ"
|
||||
#define MSG_SCHRECORD_CANCELED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ"
|
||||
#define MSG_SCHRECORD_PLAYFILE_SEL "<22><><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF>ѡ<EFBFBD><D1A1>Ҫ<EFBFBD><D2AA><EFBFBD>ŵĵ<C5B5><C4B5>ļ<EFBFBD>"
|
||||
#define MSG_SCHRECORD_PLAY "<22><><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_STARTDLFAILED "<22><><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_SCHRECORD_STOPDLFAILED "ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_SCHRECORD_ILLEGALFRAME "֡<>ʷ<EFBFBD>Χ1-120"
|
||||
|
||||
#define MSG_SPLITINFO_BLANK "<22><>ǰ<EFBFBD><C7B0>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>հף<D5B0><D7A3><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>ͼ<EFBFBD><CDBC>"
|
||||
#define MSG_SPLITINFO_MONITOR "<22><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>"
|
||||
#define MSG_SPLITINFO_PLAYBACK "<22><><EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD>"
|
||||
#define MSG_SPLITINFO_PREVIEW "<22><><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>"
|
||||
#define MSG_SPLITINFO_CYCLEMONITOR "<22><>ѭԤ<D1AD><D4A4>"
|
||||
#define MSG_SPLITINFO_NOLIMIT " <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "
|
||||
#define MSG_SPLITINFO_NODEVICE "<22><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>豸"
|
||||
#define MSG_SPLITINFO_CHOOSEDEVICE "<22>豸ѡ<E8B1B8><D1A1>"
|
||||
#define MSG_SPLITINFO_LIMIT_FAILED "<22><EFBFBD><DEB6><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
|
||||
#define MSG_TRANSCOM_DATABIT_BITS "λ"
|
||||
#define MSG_TRANSCOM_STOPBIT_1BIT " 1 λ"
|
||||
#define MSG_TRANSCOM_STOPBIT_15BITS " 1.5 λ"
|
||||
#define MSG_TRANSCOM_STOPBIT_2BITS " 2 λ"
|
||||
#define MSG_TRANSCOM_PARITY_NO "<22><>У<EFBFBD><D0A3>"
|
||||
#define MSG_TRANSCOM_PARITY_ODD "<22><>У<EFBFBD><D0A3>"
|
||||
#define MSG_TRANSCOM_PARITY_EVEN "żУ<C5BC><D0A3>"
|
||||
#define MSG_TRANSCOM_CLOSECOM "<22>رմ<D8B1><D5B4><EFBFBD>"
|
||||
#define MSG_TRANSCOM_OPENCOM "<22><EFBFBD><F2BFAAB4><EFBFBD>"
|
||||
#define MSG_TRANSCOM_OPENTRANSCOMFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_TRANSCOM_SENDDATAFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
|
||||
#define MSG_CYCLE_OPENCHANNELFAILED "<22><>ѭ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ͨ<EFBFBD><CDA8>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_CYCLE_CLOSECHANNELFAILED "<22><>ѭ<EFBFBD><D1AD>ͨ<EFBFBD><CDA8><EFBFBD>ر<EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_CYCLE_STOPCYCLEERROR "ֹͣ<CDA3><D6B9>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>!"
|
||||
#define MSG_CYCLE_STOPMONITORERROR "ֹͣʵʱԤ<CAB1><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
|
||||
#define MSG_CYCLE_STOPNETPLAYERROR "ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD>طų<D8B7><C5B3><EFBFBD>!"
|
||||
#define MSG_CYCLE_STOPMULTIPLAYERROR "ֹͣ<CDA3><EFBFBD><E0BBAD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"
|
||||
|
||||
#define NAME_DEVICE "<22>豸"
|
||||
#define NAME_CHANNEL "ͨ<><CDA8>"
|
||||
#define NAME_SCRN "<22><>Ļ"
|
||||
#define NAME_UNBROADCASTDEV "<22>ǹ㲥<C7B9>豸"
|
||||
#define NAME_BROADCASTDEV "<22>㲥<EFBFBD>豸"
|
||||
|
||||
#define NAME_CFG_SERVERCONFIG "<22>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_CHANNELCONFIG "ͼ<><CDBC>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_SERIALCONFIG "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_ALARMCONFIG "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_ALARMRECORD "¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_USERCONFIG "<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_CFG_NETWORK "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
/*
|
||||
#define NAME_ALARMCFG_ALLINPUT "ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_ALARMCFG_INPUT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_ALARMCFG_ALLOUTPUT "ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_ALARMCFG_OUTPUT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_GETINPUTCFGFAILED "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!"
|
||||
#define MSG_ALARMCFG_GETOUTPUTCFGFAILED "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!"
|
||||
#define MSG_ALARMCFG_HOURERROR "Сʱ<D0A1>ķ<EFBFBD>Χ<EFBFBD><CEA7>0 -- 24֮<34><D6AE>!"
|
||||
#define MSG_ALARMCFG_MINUTEERROR "<22><><EFBFBD>ӵķ<D3B5>Χ<EFBFBD><CEA7>0 -- 60֮<30><D6AE>!"
|
||||
#define MSG_ALARMCFG_TIMEILLEGAL "<22><><EFBFBD><EFBFBD>ʱ<EFBFBD>䲻<EFBFBD>ܳ<EFBFBD><DCB3><EFBFBD>24:00!"
|
||||
#define MSG_ALARMCFG_TIMEILLEGAL2 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼʱ<CABC>䲻<EFBFBD>ܴ<EFBFBD><DCB4><EFBFBD>ֹͣʱ<D6B9><CAB1>!"
|
||||
#define MSG_ALARMCFG_TIMEILLEGAL3 "<22><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD>ظ<EFBFBD>!"
|
||||
*/
|
||||
#define NAME_CHANNELCFG_ALLCHANNEL "ȫ<><C8AB>ͨ<EFBFBD><CDA8>"
|
||||
#define NAME_CHANNELCFG_CHANNEL "ͨ<><CDA8>"
|
||||
#define NAME_CHANNELCFG_STOPREC "ֹͣ¼<D6B9><C2BC>"
|
||||
#define NAME_CHANNELCFG_STARTREC "Զ<><D4B6>¼<EFBFBD><C2BC>"
|
||||
#define MSG_CHANNELCFG_GETCHANNELCFGFAILED "<22><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!ͨ<><CDA8>:"
|
||||
|
||||
#define NAME_SERIALCFG_ALLCHANNEL "ȫ<><C8AB>ͨ<EFBFBD><CDA8>"
|
||||
#define NAME_SERIALCFG_CHANNEL "ͨ<><CDA8>"
|
||||
#define MSG_SERIALCFG_PSWCHECKERROR "<22><><EFBFBD><EFBFBD>У<EFBFBD>鲻<EFBFBD><E9B2BB>ȷ<EFBFBD><C8B7>"
|
||||
|
||||
|
||||
//#define MSG_SERIALCFG_NONE "<22><>У<EFBFBD><D0A3>"
|
||||
//#define MSG_SERIALCFG_ODD "<22><>У<EFBFBD><D0A3>"
|
||||
//#define MSG_SERIALCFG_EVEN "żУ<C5BC><D0A3>"
|
||||
|
||||
#define MSG_CLOSESOUNDFAILED "<22>ر<EFBFBD><D8B1><EFBFBD>Ƶʧ<C6B5><CAA7>"
|
||||
#define MSG_OPENSOUNDFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶʧ<C6B5><CAA7>"
|
||||
|
||||
#define MSG_VERSION " --NetSDK<44>汾:"
|
||||
|
||||
#define MSG_UG_OPENFILE "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"
|
||||
#define MSG_UG_FAILED "ʧ<><CAA7>"
|
||||
#define MSG_UG_ERROR "<22><><EFBFBD><EFBFBD>"
|
||||
#define MSG_FILE_MISSTYPE "<22><>ǰ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"
|
||||
#define MSG_UG_STARTFAILED "<22><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_UG_SENDFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_UG_STOPFAILED "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define MSG_UG_DONE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_TRANSFER_DONE "<22>ļ<EFBFBD><C4BC>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD>ȴ<EFBFBD>.."
|
||||
#define MSG_UP_PROGRESS "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#define NAME_BTN_NORMAL "<22><><EFBFBD><EFBFBD>"
|
||||
#define NAME_BTN_ADVANCE "<22><EFBFBD>"
|
||||
#define NAME_BTN_PTZ "<22><>̨"
|
||||
#define NAME_BTN_DEVLIST "<22>豸"
|
||||
#define NAME_BTN_COLOR "<22><>ɫ"
|
||||
#define NAME_BTN_CBDATA "<22>ص<EFBFBD>"
|
||||
#define NAME_BTN_PBCTRL "<22>ط<EFBFBD>"
|
||||
|
||||
#define NAME_RUNTIME_CHANNEL "ͨ<><CDA8>:"
|
||||
#define NAME_RUNTIME_TOTAL "<22>豸:"
|
||||
|
||||
#define ERROR_NET_NOERROR "û<>д<EFBFBD><D0B4><EFBFBD>"
|
||||
#define ERROR_NET_ERROR "δ֪<CEB4><D6AA><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_SYSTEM_ERROR "Windowsϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_NETWORK_ERROR "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>糬ʱ"
|
||||
#define ERROR_NET_DEV_VER_NOMATCH "<22>豸Э<E8B1B8>鲻ƥ<E9B2BB><C6A5>"
|
||||
#define ERROR_NET_INVALID_HANDLE "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч"
|
||||
#define ERROR_NET_OPEN_CHANNEL_ERROR "<22><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_CLOSE_CHANNEL_ERROR "<22>ر<EFBFBD>ͨ<EFBFBD><CDA8>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_ILLEGAL_PARAM "<22>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>"
|
||||
#define ERROR_NET_SDK_INIT_ERROR "SDK<44><4B>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_SDK_UNINIT_ERROR "SDK<44><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_OPEN_ERROR "<22><><EFBFBD><EFBFBD>render<65><72>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_DEC_OPEN_ERROR "<22><EFBFBD><F2BFAABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_DEC_CLOSE_ERROR "<22>رս<D8B1><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_MULTIPLAY_NOCHANNEL "<22><EFBFBD><E0BBAD>Ԥ<EFBFBD><D4A4><EFBFBD>м<EFBFBD><D0BC>ͨ<E2B5BD><CDA8><EFBFBD><EFBFBD>Ϊ0"
|
||||
#define ERROR_NET_TALK_INIT_ERROR "¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_TALK_NOT_INIT "¼<><C2BC><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>"
|
||||
#define ERROR_NET_TALK_SENDDATA_ERROR "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>"
|
||||
#define ERROR_NET_NO_TALK_CHANNEL "δ<><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>"
|
||||
#define ERROR_NET_NO_AUDIO "<22><>ͨ<EFBFBD><CDA8>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ"
|
||||
#define ERROR_NET_REAL_ALREADY_SAVING "ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>״̬"
|
||||
#define ERROR_NET_NOT_SAVING "δ<><CEB4><EFBFBD><EFBFBD>ʵʱ<CAB5><CAB1><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_OPEN_FILE_ERROR "<22><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_PTZ_SET_TIMER_ERROR "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨<EFBFBD><CCA8><EFBFBD>ƶ<EFBFBD>ʱ<EFBFBD><CAB1>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_RETURN_DATA_ERROR "<22>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_INSUFFICIENT_BUFFER "û<><C3BB><EFBFBD>㹻<EFBFBD>Ļ<EFBFBD><C4BB><EFBFBD>"
|
||||
#define ERROR_NET_NOT_SUPPORTED "<22><>ǰSDKδ֧<CEB4>ָù<D6B8><C3B9><EFBFBD>"
|
||||
#define ERROR_NET_NO_RECORD_FOUND "<22><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>¼<EFBFBD><C2BC>"
|
||||
#define ERROR_NET_LOGIN_ERROR_PASSWORD "<22><><EFBFBD>벻<EFBFBD><EBB2BB>ȷ"
|
||||
#define ERROR_NET_LOGIN_ERROR_USER "<22>ʻ<EFBFBD><CABB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_LOGIN_ERROR_TIMEOUT "<22>ȴ<EFBFBD><C8B4><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>س<EFBFBD>ʱ"
|
||||
#define ERROR_NET_LOGIN_ERROR_RELOGGIN "<22>ʺ<EFBFBD><CABA>ѵ<EFBFBD>¼"
|
||||
#define ERROR_NET_LOGIN_ERROR_LOCKED "<22>ʺ<EFBFBD><CABA>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_LOGIN_ERROR_BLOCKLIST "<22>ʺ<EFBFBD><CABA>ѱ<EFBFBD><D1B1><EFBFBD>Ϊ<EFBFBD><CEAA>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_LOGIN_ERROR_BUSY "<22><>Դ<EFBFBD><D4B4><EFBFBD>㣬ϵͳæ"
|
||||
#define ERROR_NET_LOGIN_ERROR_CONNECT "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_LOGIN_ERROR_NETWORK "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>"
|
||||
#define ERROR_NET_RENDER_SOUND_ON_ERROR "Render<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_SOUND_OFF_ERROR "Render<65><72><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_SET_VOLUME_ERROR "Render<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_ADJUST_ERROR "Render<65><72><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_PAUSE_ERROR "Render<65><72><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>ų<EFBFBD><C5B3><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_SNAP_ERROR "Render<65><72>ץͼ<D7A5><CDBC><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_STEP_ERROR "Render<65>ⲽ<EFBFBD><E2B2BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_RENDER_FRAMERATE_ERROR "Render<65><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ʳ<EFBFBD><CAB3><EFBFBD>"
|
||||
#define ERROR_NET_CONFIG_DEVBUSY "<22><>ʱ<EFBFBD><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define ERROR_NET_CONFIG_DATAILLEGAL "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2>Ϸ<EFBFBD>"
|
||||
#define ERROR_NET_NO_INIT "CLientSDKδ<4B><CEB4><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>"
|
||||
#define ERROR_NET_DOWNLOAD_END "<22><><EFBFBD><EFBFBD><EFBFBD>ѽ<EFBFBD><D1BD><EFBFBD>"
|
||||
|
||||
#define NAME_MENU_FULLSCREEN "Full Screen"
|
||||
#define NAME_MENU_MULTISCREEN "Multi-Screen"
|
||||
#define NAME_MENU_AUTOADJUST "auto adjust"
|
||||
#define NAME_MENU_EXITDECODE "Close decoder"
|
||||
#define NAME_MENU_EXITCYCLE "Close Tour"
|
||||
|
||||
#define MSG_ALARMCFG_ALARMIN "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_MOTION "<22><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_VIDEOLOST "<22><>Ƶ<EFBFBD><C6B5>ʧ"
|
||||
#define MSG_ALARMCFG_BLINE "<22><>Ƶ<EFBFBD>ڵ<EFBFBD>"
|
||||
#define MSG_ALARMCFG_DISK "Ӳ<>̱<EFBFBD><CCB1><EFBFBD>"
|
||||
|
||||
#define MSG_ALARMCFG_WHOLEWEEK "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_MONDAY "<22><><EFBFBD><EFBFBD>һ"
|
||||
#define MSG_ALARMCFG_TUESDAY "<22><><EFBFBD>ڶ<EFBFBD>"
|
||||
#define MSG_ALARMCFG_WEDNESDAY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_THURSDAY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_FRIDAY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_SATURDAY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define MSG_ALARMCFG_SUNDAY "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#define NAME_ALARMCFG_NOPEN "<22><><EFBFBD><EFBFBD>"
|
||||
#define NAME_ALARMCFG_NCLOSE "<22><><EFBFBD><EFBFBD>"
|
||||
|
||||
#define NAME_NETCFG_NET1 "10MBase-T"
|
||||
#define NAME_NETCFG_NET2 "10MBase-Tȫ˫<C8AB><CBAB>"
|
||||
#define NAME_NETCFG_NET3 "100MBase-TX"
|
||||
#define NAME_NETCFG_NET4 "100Mȫ˫<C8AB><CBAB>"
|
||||
#define NAME_NETCFG_NET5 "10M/100M<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ"
|
||||
#define NAME_NETCFG_REMOTE_ALARM "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_LOG "<22><>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_SMTP "SMTP<54><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_MULTICAST "<22>ಥ<EFBFBD><E0B2A5>"
|
||||
#define NAME_NETCFG_REMOTE_NFS "NFS<46><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_FTP "Ftp<74><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_PPPOE "PPPoE<6F><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_DDNS "DDNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_NETCFG_REMOTE_DNS "DNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#define NAME_NETCFG_PPPOE_IP "ע<><D7A2>IP"
|
||||
#define NAME_NETCFG_DDNS_HOSTNAME "DDNS<4E><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
|
||||
#define MSG_CONFIG_SUCCESS "<22><><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>"
|
||||
|
||||
#define NAME_STREAM_MAIN "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||||
#define NAME_STREAM_SUB1 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_1"
|
||||
#define NAME_STREAM_SUB2 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_2"
|
||||
#define NAME_STREAM_SUB3 "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_3"
|
||||
|
||||
#endif
|
||||
448
fast/MultiPlay.cpp
Normal file
448
fast/MultiPlay.cpp
Normal file
@@ -0,0 +1,448 @@
|
||||
// MultiPlay.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
//#include "RealPlayAndPTZControl.h"
|
||||
#include "MultiPlay.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMultiPlay dialog
|
||||
|
||||
|
||||
CMultiPlay::CMultiPlay(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CMultiPlay::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CMultiPlay)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_nMultiPlay = 0;
|
||||
m_nChannel = 0;
|
||||
m_nChannelCount = 0;
|
||||
}
|
||||
|
||||
|
||||
void CMultiPlay::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CMultiPlay)
|
||||
DDX_Control(pDX, IDC_COMBO_BEGINCHANNEL, m_comboChannel);
|
||||
DDX_Control(pDX, IDC_COMBO_MULTI, m_comboMulti);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CMultiPlay, CDialog)
|
||||
//{{AFX_MSG_MAP(CMultiPlay)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMultiPlay message handlers
|
||||
|
||||
void CMultiPlay::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
int nIndex = m_comboMulti.GetCurSel();
|
||||
if(CB_ERR != nIndex)
|
||||
{
|
||||
m_nMultiPlay = m_comboMulti.GetItemData(nIndex);
|
||||
}
|
||||
nIndex = m_comboChannel.GetCurSel();
|
||||
if(CB_ERR != nIndex)
|
||||
{
|
||||
m_nChannel = m_comboChannel.GetItemData(nIndex);
|
||||
}
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
//Set dropdown menu
|
||||
void CMultiPlay::SetMultiPlayDlgInfo(int nChannelCount)
|
||||
{
|
||||
m_nChannelCount = nChannelCount;
|
||||
}
|
||||
|
||||
BOOL CMultiPlay::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
g_SetWndStaticText(this);
|
||||
// TODO: Add extra initialization here
|
||||
//Channel dropdown menu
|
||||
m_comboChannel.ResetContent();
|
||||
int i = 0;
|
||||
int nIndex = 0;
|
||||
for(i=0;i<m_nChannelCount;i++)
|
||||
{
|
||||
CString str;
|
||||
str.Format("%d",i);
|
||||
nIndex = m_comboChannel.AddString(str);
|
||||
m_comboChannel.SetItemData(nIndex,i);
|
||||
}
|
||||
if(0 < m_comboChannel.GetCount())
|
||||
{
|
||||
m_comboChannel.SetCurSel(0);
|
||||
}
|
||||
//Video amount dropdown menu
|
||||
m_comboMulti.ResetContent();
|
||||
nIndex = m_comboMulti.AddString(ConvertString("Single"));
|
||||
m_comboMulti.SetItemData(nIndex,1);
|
||||
nIndex = m_comboMulti.AddString(ConvertString("Split-4"));
|
||||
m_comboMulti.SetItemData(nIndex,4);
|
||||
nIndex = m_comboMulti.AddString(ConvertString("Split-8"));
|
||||
m_comboMulti.SetItemData(nIndex,8);
|
||||
nIndex = m_comboMulti.AddString(ConvertString("Split-9"));
|
||||
m_comboMulti.SetItemData(nIndex,9);
|
||||
nIndex = m_comboMulti.AddString(ConvertString("Split-16"));
|
||||
m_comboMulti.SetItemData(nIndex,16);
|
||||
if(0 < m_comboMulti.GetCount())
|
||||
{
|
||||
m_comboMulti.SetCurSel(0);
|
||||
}
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
57
fast/MultiPlay.h
Normal file
57
fast/MultiPlay.h
Normal file
@@ -0,0 +1,57 @@
|
||||
#if !defined(AFX_MULTIPLAY_H__667E5476_E09C_4F4D_8C71_C21425CE3E45__INCLUDED_)
|
||||
#define AFX_MULTIPLAY_H__667E5476_E09C_4F4D_8C71_C21425CE3E45__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// MultiPlay.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CMultiPlay dialog
|
||||
|
||||
class CMultiPlay : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
//Initial channel
|
||||
int m_nChannel;
|
||||
//Window amount
|
||||
int m_nMultiPlay;
|
||||
//Call external to initialize dialogue box
|
||||
void SetMultiPlayDlgInfo(int nChannelCount);
|
||||
|
||||
CMultiPlay(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CMultiPlay)
|
||||
enum { IDD = IDD_DIALOG_MULTIPLAY };
|
||||
CComboBox m_comboChannel;
|
||||
CComboBox m_comboMulti;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CMultiPlay)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CMultiPlay)
|
||||
virtual void OnOK();
|
||||
virtual BOOL OnInitDialog();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
private:
|
||||
int m_nChannelCount;
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_MULTIPLAY_H__667E5476_E09C_4F4D_8C71_C21425CE3E45__INCLUDED_)
|
||||
149
fast/PlayApi.cpp
Normal file
149
fast/PlayApi.cpp
Normal file
@@ -0,0 +1,149 @@
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "PlayApi.h"
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
CPlayAPI::CPlayAPI():
|
||||
m_hModule(NULL),
|
||||
m_APIOpenStream(NULL),
|
||||
m_APISetDisplayCallBack(NULL),
|
||||
m_APIRigisterDrawFun(NULL),
|
||||
m_APIPlay(NULL),
|
||||
m_APIInputData(NULL),
|
||||
m_APIQueryInfo(NULL),
|
||||
m_APIStop(NULL),
|
||||
m_APICloseStream(NULL),
|
||||
m_APIGetLastError(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
CPlayAPI::~CPlayAPI()
|
||||
{
|
||||
if (m_hModule)
|
||||
{
|
||||
FreeLibrary(m_hModule);
|
||||
m_hModule = NULL;
|
||||
|
||||
OutputDebugString(_T("Unload PlaySDK!\n"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
void CPlayAPI::LoadPlayDll()
|
||||
{
|
||||
HMODULE hLib = ::LoadLibraryEx("dhplay.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
|
||||
if (hLib)
|
||||
{
|
||||
m_APIOpenStream = (PLAY_API_OPENSTREAM)GetProcAddress(hLib, "PLAY_OpenStream");;
|
||||
m_APISetDisplayCallBack = (PLAY_API_SETIVSCALLBACK)GetProcAddress(hLib, "PLAY_SetIVSCallBack");
|
||||
m_APIRigisterDrawFun = (PLAY_API_RIGISTERDRAWFUN)GetProcAddress(hLib, "PLAY_RigisterDrawFun");
|
||||
m_APIPlay = (PLAY_API_PLAY)GetProcAddress(hLib, "PLAY_Play");
|
||||
m_APIInputData = (PLAY_API_INPUTDATA)GetProcAddress(hLib, "PLAY_InputData");
|
||||
m_APIQueryInfo = (PLAY_API_QUERYINFO)GetProcAddress(hLib, "PLAY_QueryInfo");
|
||||
m_APIStop = (PLAY_API_STOP)GetProcAddress(hLib, "PLAY_Stop");
|
||||
m_APICloseStream = (PLAY_API_CLOSESTREAM)GetProcAddress(hLib, "PLAY_CloseStream");
|
||||
m_APIGetLastError = (PLAY_API_GetLastError)GetProcAddress(hLib, "PLAY_GetLastError");
|
||||
|
||||
m_hModule = hLib;
|
||||
OutputDebugString(_T("Load PlaySDK Successfully!\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
OutputDebugString(_T("Load PlaySDK Failed!\n"));
|
||||
}
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_OpenStream(LONG nPort,PBYTE pFileHeadBuf,DWORD nSize,DWORD nBufPoolSize)
|
||||
{
|
||||
if (m_APIOpenStream)
|
||||
{
|
||||
return m_APIOpenStream(nPort, pFileHeadBuf, nSize, nBufPoolSize);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_SetIVSCallBack(LONG nPort, GetIVSInfoCallbackFunc pFunc, void* pUserData)
|
||||
{
|
||||
if (m_APISetDisplayCallBack)
|
||||
{
|
||||
return m_APISetDisplayCallBack(nPort, pFunc, pUserData);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_RigisterDrawFun(LONG nPort, DrawFun DrawFuncb, void* pUserData)
|
||||
{
|
||||
if (m_APIRigisterDrawFun)
|
||||
{
|
||||
return m_APIRigisterDrawFun(nPort, DrawFuncb, pUserData);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_Play(LONG nPort, HWND hWnd)
|
||||
{
|
||||
if (m_APIPlay)
|
||||
{
|
||||
return m_APIPlay(nPort, hWnd);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_InputData(LONG nPort, PBYTE pBuf, DWORD nSize)
|
||||
{
|
||||
if (m_APIInputData)
|
||||
{
|
||||
return m_APIInputData(nPort, pBuf, nSize);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_QueryInfo(LONG nPort , int cmdType, char* buf, int buflen, int* returnlen)
|
||||
{
|
||||
if (m_APIQueryInfo)
|
||||
{
|
||||
return m_APIQueryInfo(nPort, cmdType, buf, buflen, returnlen);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_Stop(LONG nPort)
|
||||
{
|
||||
if (m_APIStop)
|
||||
{
|
||||
return m_APIStop(nPort);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CPlayAPI::PLAY_CloseStream(LONG nPort)
|
||||
{
|
||||
if (m_APICloseStream)
|
||||
{
|
||||
return m_APICloseStream(nPort);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
DWORD CPlayAPI::PLAY_GetLastError(LONG nPort)
|
||||
{
|
||||
if (m_APIGetLastError)
|
||||
{
|
||||
return m_APIGetLastError(nPort);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
84
fast/PlayApi.h
Normal file
84
fast/PlayApi.h
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
|
||||
#ifndef _PLAYAPI_HEAD_
|
||||
#define _PLAYAPI_HEAD_
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// PlaySDK API
|
||||
/*
|
||||
PLAY_OpenStream()
|
||||
PLAY_SetIVSCallBack()
|
||||
PLAY_RigisterDrawFun()
|
||||
PLAY_Play()
|
||||
PLAY_InputData()
|
||||
PLAY_QueryInfo()
|
||||
PLAY_Stop()
|
||||
PLAY_CloseStream()
|
||||
PLAY_API_GetLastError()
|
||||
*/
|
||||
|
||||
typedef void (__stdcall *GetIVSInfoCallbackFunc)(char* buf, long type, long len, long reallen, void* reserved, void* nUser);
|
||||
typedef void (CALLBACK *DrawFun)(long nPort,HDC hDc,LONG nUser);
|
||||
|
||||
typedef BOOL (__stdcall *PLAY_API_OPENSTREAM)(LONG nPort, PBYTE pFileHeadBuf, DWORD nSize, DWORD nBufPoolSize);
|
||||
typedef BOOL (__stdcall *PLAY_API_SETIVSCALLBACK)(LONG nPort, GetIVSInfoCallbackFunc pFunc, void* pUserData);
|
||||
typedef BOOL (__stdcall *PLAY_API_RIGISTERDRAWFUN)(LONG nPort, DrawFun DrawFuncb, void* pUserData);
|
||||
typedef BOOL (__stdcall *PLAY_API_PLAY)(LONG nPort, HWND hWnd);
|
||||
typedef BOOL (__stdcall *PLAY_API_INPUTDATA)(LONG nPort, PBYTE pBuf, DWORD nSize);
|
||||
typedef BOOL (__stdcall *PLAY_API_QUERYINFO)(LONG nPort , int cmdType, char* buf, int buflen, int* returnlen);
|
||||
typedef BOOL (__stdcall *PLAY_API_STOP)(LONG nPort);
|
||||
typedef BOOL (__stdcall *PLAY_API_CLOSESTREAM)(LONG nPort);
|
||||
typedef BOOL (__stdcall *PLAY_API_GetLastError)(LONG nPort);
|
||||
|
||||
class CPlayAPI
|
||||
{
|
||||
public:
|
||||
CPlayAPI();
|
||||
virtual ~CPlayAPI();
|
||||
|
||||
public:
|
||||
void LoadPlayDll();
|
||||
|
||||
// PLAY_OpenStream
|
||||
BOOL PLAY_OpenStream(LONG nPort, PBYTE pFileHeadBuf, DWORD nSize, DWORD nBufPoolSize);
|
||||
|
||||
// PLAY_SetIVSCallBack
|
||||
BOOL PLAY_SetIVSCallBack(LONG nPort, GetIVSInfoCallbackFunc pFunc, void* pUserData);
|
||||
|
||||
// PLAY_RigisterDrawFun
|
||||
BOOL PLAY_RigisterDrawFun(LONG nPort, DrawFun DrawFuncb, void* pUserData);
|
||||
|
||||
// PLAY_Play
|
||||
BOOL PLAY_Play(LONG nPort, HWND hWnd);
|
||||
|
||||
// PLAY_InputData
|
||||
BOOL PLAY_InputData(LONG nPort, PBYTE pBuf, DWORD nSize);
|
||||
|
||||
// PLAY_QueryInfo
|
||||
BOOL PLAY_QueryInfo(LONG nPort , int cmdType, char* buf, int buflen, int* returnlen);
|
||||
|
||||
// PLAY_Stop
|
||||
BOOL PLAY_Stop(LONG nPort);
|
||||
|
||||
// PLAY_CloseStream
|
||||
BOOL PLAY_CloseStream(LONG nPort);
|
||||
|
||||
// PLAY_GetLastError
|
||||
DWORD PLAY_GetLastError(LONG nPort);
|
||||
|
||||
private:
|
||||
HMODULE m_hModule;
|
||||
|
||||
PLAY_API_OPENSTREAM m_APIOpenStream;
|
||||
PLAY_API_SETIVSCALLBACK m_APISetDisplayCallBack;
|
||||
PLAY_API_RIGISTERDRAWFUN m_APIRigisterDrawFun;
|
||||
PLAY_API_PLAY m_APIPlay;
|
||||
PLAY_API_INPUTDATA m_APIInputData;
|
||||
PLAY_API_QUERYINFO m_APIQueryInfo;
|
||||
PLAY_API_STOP m_APIStop;
|
||||
PLAY_API_CLOSESTREAM m_APICloseStream;
|
||||
PLAY_API_GetLastError m_APIGetLastError;
|
||||
|
||||
};
|
||||
#endif
|
||||
477
fast/PlayWnd.cpp
Normal file
477
fast/PlayWnd.cpp
Normal file
@@ -0,0 +1,477 @@
|
||||
#include "stdafx.h"
|
||||
#include "Fast.h"
|
||||
#include "PlayWnd.h"
|
||||
#include "PtzScreen.h"
|
||||
#include "dhplay.h"
|
||||
//#include "RealPlayAndPTZControlDlg.h"
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPlayWnd dialog
|
||||
|
||||
|
||||
CPlayWnd::CPlayWnd():m_nWndID(0), m_FlagRect(FALSE),bIsPlaying(false)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPlayWnd)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_nIndex = 0;
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPlayWnd, CWnd)
|
||||
//{{AFX_MSG_MAP(CPlayWnd)
|
||||
ON_WM_ERASEBKGND()
|
||||
ON_WM_CONTEXTMENU()
|
||||
ON_WM_LBUTTONDOWN()
|
||||
ON_WM_MBUTTONUP()
|
||||
ON_WM_MOUSEMOVE()
|
||||
ON_WM_ACTIVATE()
|
||||
ON_WM_CREATE()
|
||||
ON_WM_TIMER()
|
||||
ON_WM_ACTIVATEAPP()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_COMMAND_RANGE(VIDEO_MENU_BASE, VIDEO_MENU_END, OnVideoMenu)
|
||||
ON_MESSAGE(VIDEO_REPAINT, OnRepaintWnd)
|
||||
//}}AFX_MSG_MAP
|
||||
ON_WM_CREATE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPlayWnd message handlers
|
||||
BOOL CPlayWnd::OnEraseBkgnd(CDC* pDC)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
CRect rt;
|
||||
GetClientRect(&rt);
|
||||
CBrush br;
|
||||
br.CreateSolidBrush(VIDEO_BACK_COLOR);
|
||||
pDC->FillRect(&rt,&br);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
LRESULT CPlayWnd::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
// TODO: Add your specialized code here and/or call the base class
|
||||
CPtzScreen *pContainer = (CPtzScreen *)GetParent();
|
||||
// CRealPlayAndPTZControlDlg *pMainWnd = (CRealPlayAndPTZControlDlg *)(AfxGetApp()->GetMainWnd());
|
||||
// CDialogTransmit * pTransWnd = (CDialogTransmit *)pMainWnd->m_pTabTransmit;
|
||||
|
||||
if(pContainer)
|
||||
{
|
||||
switch(message)
|
||||
{
|
||||
case WM_LBUTTONUP:
|
||||
{
|
||||
pointEnd.x = LOWORD(lParam);
|
||||
pointEnd.y = HIWORD(lParam);
|
||||
if(m_FlagRect == TRUE)
|
||||
{
|
||||
m_FlagRect =FALSE;
|
||||
KillTimer(2);
|
||||
RECT rt;
|
||||
GetClientRect(&rt);
|
||||
pContainer->m_pRectEventFunc(rt,pointStart,pointEnd,pContainer->m_dwRectEvent);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WM_MOUSEMOVE:
|
||||
{
|
||||
RECT rt;
|
||||
GetClientRect(&rt);
|
||||
long x = LOWORD(lParam);
|
||||
long y = HIWORD(lParam);
|
||||
x = x>rt.right?rt.right:x;
|
||||
x = x<rt.left?rt.left:x;
|
||||
y = y>rt.bottom?rt.bottom:y;
|
||||
y = y<rt.top?rt.top:y;
|
||||
pointEnd.x = x;
|
||||
pointEnd.y = y;
|
||||
}
|
||||
break;
|
||||
case WM_LBUTTONDOWN:
|
||||
{
|
||||
pContainer->SetActivePage(this); // <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
|
||||
if (pContainer->m_pMessageProc) // ѡ<><D1A1><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>Ż<EFBFBD><C5BB><EFBFBD>
|
||||
{
|
||||
pContainer->m_pMessageProc(m_nWndID, WM_RBUTTONDOWN, pContainer->m_dwMessageUser);
|
||||
}
|
||||
if (bIsPlaying == false)
|
||||
{
|
||||
break;
|
||||
}
|
||||
pointStart.x = LOWORD(lParam);
|
||||
pointStart.y = HIWORD(lParam);
|
||||
m_FlagRect =TRUE;
|
||||
SetTimer(2,16,NULL);
|
||||
break;
|
||||
}
|
||||
case WM_LBUTTONDBLCLK:
|
||||
{
|
||||
BOOL bMulti = pContainer->GetMultiScreen();
|
||||
pContainer->SetMultiScreen(!bMulti);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
return CWnd::DefWindowProc(message, wParam, lParam);
|
||||
}
|
||||
|
||||
void CPlayWnd::OnContextMenu(CWnd* pWnd, CPoint point)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
/*CPtzScreen *pContainer = (CPtzScreen *)GetParent();
|
||||
pContainer->SetActivePage(this);
|
||||
|
||||
CMenu menu;
|
||||
menu.CreatePopupMenu();
|
||||
menu.AppendMenu(MF_STRING | pContainer->GetFullScreen() ? MF_CHECKED : MF_UNCHECKED, VIDEO_MENU_FULLSCREEN, ConvertString(NAME_MENU_FULLSCREEN));
|
||||
menu.AppendMenu(MF_STRING | pContainer->GetMultiScreen() ? MF_CHECKED : MF_UNCHECKED, VIDEO_MENU_MULTISCREEN, ConvertString(NAME_MENU_MULTISCREEN));
|
||||
menu.AppendMenu(MF_STRING | pContainer->GetAutoAdjustPos() ? MF_CHECKED : MF_UNCHECKED, VIDEO_MENU_AUTOADJUST, ConvertString(NAME_MENU_AUTOADJUST));
|
||||
menu.AppendMenu(MF_STRING | pContainer->m_pGetParams(m_nWndID, 0, pContainer->m_dwGetParams) ? MF_CHECKED : MF_UNCHECKED, VIDEO_MENU_EXITDECODE, ConvertString(NAME_MENU_EXITDECODE));
|
||||
menu.AppendMenu(MF_STRING | pContainer->m_pGetParams(m_nWndID, 1, pContainer->m_dwGetParams) ? MF_CHECKED : MF_UNCHECKED, VIDEO_MENU_EXITCYCLE, ConvertString(NAME_MENU_EXITCYCLE));
|
||||
|
||||
TrackPopupMenu(
|
||||
menu.m_hMenu,
|
||||
TPM_LEFTALIGN,
|
||||
point.x,
|
||||
point.y,
|
||||
0,
|
||||
m_hWnd,
|
||||
NULL);*/
|
||||
}
|
||||
|
||||
void CPlayWnd::OnVideoMenu(UINT nID)
|
||||
{
|
||||
CPtzScreen *pContainer = (CPtzScreen *)GetParent();
|
||||
|
||||
switch(nID)
|
||||
{
|
||||
case VIDEO_MENU_FULLSCREEN:
|
||||
pContainer->SetFullScreen(!pContainer->GetFullScreen());
|
||||
break;
|
||||
case VIDEO_MENU_MULTISCREEN:
|
||||
pContainer->SetMultiScreen(!pContainer->GetMultiScreen());
|
||||
break;
|
||||
case VIDEO_MENU_AUTOADJUST:
|
||||
pContainer->SetAutoAdjustPos(!pContainer->GetAutoAdjustPos());
|
||||
break;
|
||||
case VIDEO_MENU_PRINTSCREEN:
|
||||
break;
|
||||
case VIDEO_MENU_RECORDVIDEO:
|
||||
break;
|
||||
case VIDEO_MENU_EXITDECODE:
|
||||
pContainer->m_pSetParams(m_nWndID, 0, pContainer->m_dwSetParams);
|
||||
break;
|
||||
case VIDEO_MENU_EXITCYCLE:
|
||||
pContainer->m_pSetParams(m_nWndID, 1, pContainer->m_dwSetParams);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
LRESULT CPlayWnd::OnRepaintWnd(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
Invalidate();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL CPlayWnd::DestroyWindow()
|
||||
{
|
||||
return CWnd::DestroyWindow();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CPlayWnd::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
|
||||
{
|
||||
CWnd::OnActivate(nState, pWndOther, bMinimized);
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CPlayWnd::OnTimer(UINT_PTR nIDEvent)
|
||||
{
|
||||
CWnd::OnTimer(nIDEvent);
|
||||
}
|
||||
|
||||
void CPlayWnd::OnActivateApp(BOOL bActive, DWORD hTask)
|
||||
{
|
||||
CWnd::OnActivateApp(bActive, hTask);
|
||||
|
||||
}
|
||||
|
||||
//Display log in failure reason
|
||||
void CPlayWnd::ShowLoginErrorReason(int nError)
|
||||
{
|
||||
if (1 == nError) MessageBox(ConvertString("Invalid password!"), ConvertString("Prompt"));
|
||||
else if (2 == nError) MessageBox(ConvertString("Invalid account!"), ConvertString("Prompt"));
|
||||
else if (3 == nError) MessageBox(ConvertString("Timeout!"), ConvertString("Prompt"));
|
||||
else if (4 == nError) MessageBox(ConvertString("The user has logged in!"), ConvertString("Prompt"));
|
||||
else if (5 == nError) MessageBox(ConvertString("The user has been locked!"), ConvertString("Prompt"));
|
||||
else if (6 == nError) MessageBox(ConvertString("The user has listed into illegal!"), ConvertString("Prompt"));
|
||||
else if (7 == nError) MessageBox(ConvertString("The system is busy!"), ConvertString("Prompt"));
|
||||
else if (9 == nError) MessageBox(ConvertString("You Can't find the network server!"), ConvertString("Prompt"));
|
||||
else MessageBox(ConvertString("Login failed!"), ConvertString("Prompt"));
|
||||
}
|
||||
|
||||
|
||||
LLONG CPlayWnd::Login(CString strIpAddr, int nPort, CString strUser, CString strPW)
|
||||
{
|
||||
//<2F><><EFBFBD>ε<EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1>¼ID
|
||||
|
||||
char *pchDVRIP;
|
||||
//CString strDvrIP = GetDvrIP();
|
||||
pchDVRIP = (LPSTR)(LPCSTR)strIpAddr;
|
||||
WORD wDVRPort = (WORD)nPort;
|
||||
char *pchUserName = (LPSTR)(LPCSTR)strUser;
|
||||
char *pchPassword = (LPSTR)(LPCSTR)strPW;
|
||||
|
||||
NET_IN_LOGIN_WITH_HIGHLEVEL_SECURITY stInparam;
|
||||
memset(&stInparam, 0, sizeof(stInparam));
|
||||
stInparam.dwSize = sizeof(stInparam);
|
||||
strncpy(stInparam.szIP, pchDVRIP, sizeof(stInparam.szIP) - 1);
|
||||
strncpy(stInparam.szPassword, pchPassword, sizeof(stInparam.szPassword) - 1);
|
||||
strncpy(stInparam.szUserName, pchUserName, sizeof(stInparam.szUserName) - 1);
|
||||
stInparam.nPort = wDVRPort;
|
||||
stInparam.emSpecCap = EM_LOGIN_SPEC_CAP_TCP;
|
||||
|
||||
NET_OUT_LOGIN_WITH_HIGHLEVEL_SECURITY stOutparam;
|
||||
memset(&stOutparam, 0, sizeof(stOutparam));
|
||||
stOutparam.dwSize = sizeof(stOutparam);
|
||||
LLONG lRet = CLIENT_LoginWithHighLevelSecurity(&stInparam, &stOutparam);
|
||||
|
||||
|
||||
if (0 == lRet)
|
||||
{
|
||||
//Display log in failure reason
|
||||
ShowLoginErrorReason(stOutparam.nError);
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
//m_LoginID = lRet;
|
||||
int nRetLen = 0;
|
||||
NET_DEV_CHN_COUNT_INFO stuChn = { sizeof(NET_DEV_CHN_COUNT_INFO) };
|
||||
stuChn.stuVideoIn.dwSize = sizeof(stuChn.stuVideoIn);
|
||||
stuChn.stuVideoOut.dwSize = sizeof(stuChn.stuVideoOut);
|
||||
BOOL bRet = CLIENT_QueryDevState(lRet, DH_DEVSTATE_DEV_CHN_COUNT, (char*)&stuChn, stuChn.dwSize, &nRetLen);
|
||||
if (!bRet)
|
||||
{
|
||||
DWORD dwError = CLIENT_GetLastError() & 0x7fffffff;
|
||||
}
|
||||
return lRet;
|
||||
}
|
||||
//SetWindowText(ConvertString("CapturePicture"));
|
||||
}
|
||||
|
||||
|
||||
|
||||
int CPlayWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if (CWnd::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
if (m_strCameraIp.IsEmpty())
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
m_llLoginId = Login(m_strCameraIp, m_nCameraPort, m_strUserName, m_strPassWord);
|
||||
ServerPlayMode();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//Play video in data callback mode
|
||||
void CPlayWnd::ServerPlayMode()
|
||||
{
|
||||
//Close current video
|
||||
//CloseDispVideo(m_nWndID);
|
||||
|
||||
int iChannel = 0;
|
||||
|
||||
//Enable stream
|
||||
BOOL bOpenRet = g_PlayAPI.PLAY_OpenStream(m_nWndID, 0, 0, 1024 * 512 * 6);
|
||||
if (bOpenRet)
|
||||
{
|
||||
//Begin play
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶץͼ<D7A5>ص<EFBFBD><D8B5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Իص<D4BB><D8B5><EFBFBD>YUV<55><56><EFBFBD><EFBFBD>
|
||||
PLAY_SetDisplayCallBack(m_nWndID, CPlayWnd::fDisplayCB, this);
|
||||
|
||||
BOOL bPlayRet = g_PlayAPI.PLAY_Play(m_nWndID, NULL);
|
||||
if (bPlayRet)
|
||||
{
|
||||
//Real-time play
|
||||
m_DispHanle = CLIENT_RealPlayEx(m_llLoginId, iChannel, 0);
|
||||
if (0 != m_DispHanle)
|
||||
{
|
||||
//SetPlayVideoInfo(iDispNum, iChannel, ServerMode);
|
||||
CLIENT_SetRealDataCallBackEx2(m_DispHanle, RealDataCallBackEx, (LDWORD)this, 0x0f);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox(ConvertString("Fail to play!"), ConvertString("Prompt"));
|
||||
g_PlayAPI.PLAY_Stop(m_nWndID);
|
||||
g_PlayAPI.PLAY_CloseStream(m_nWndID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
g_PlayAPI.PLAY_CloseStream(m_nWndID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// playsdk <20>ص<EFBFBD> yuv<75><76><EFBFBD><EFBFBD>
|
||||
void CALL_METHOD CPlayWnd::fDisplayCB(LONG nPort, char * pBuf, LONG nSize, LONG nWidth, LONG nHeight, LONG nStamp, LONG nType, void* pReserved)
|
||||
{
|
||||
|
||||
|
||||
CPlayWnd * pThis = (CPlayWnd *)pReserved;
|
||||
//TRACE("%d\n", pThis->m_nWndID);
|
||||
|
||||
//if (pThis->m_nWndID > 1)return;
|
||||
pThis->m_nIndex++;
|
||||
if (pThis->m_nIndex == 24)
|
||||
{
|
||||
TRACE("%d\n", pThis->m_nWndID);
|
||||
cv::Mat cv_img;
|
||||
cv::Mat cv_yuv(nHeight + nHeight / 2, nWidth, CV_8UC1, pBuf);//pFrameΪYUV<55><56><EFBFBD>ݵ<EFBFBD>ַ,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CV_8UC1<43><31> CV_8UC3.
|
||||
cv_img = cv::Mat(nHeight, nWidth, CV_8UC3);
|
||||
cv::cvtColor(cv_yuv, cv_img, cv::COLOR_YUV2BGR_I420); //cv::COLOR_YUV2BGR_I420
|
||||
//cv::imshow("video", cv_img);
|
||||
//cv::imwrite("d:\\1.jpg", cv_img);
|
||||
pThis->m_nIndex = 0;
|
||||
pThis->DrawMat(cv_img);
|
||||
cv::waitKey(50);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>1<EFBFBD><31>opencv<63><76><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
|
||||
//<2F><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD>Ҫչʾ<D5B9><CABE>Picture Control<6F><6C>ID
|
||||
void CPlayWnd::DrawMat(cv::Mat& img)
|
||||
{
|
||||
cv::Mat imgTmp;
|
||||
CRect rect;
|
||||
GetClientRect(&rect); // <20><>ȡ<EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>С
|
||||
int nWidth = img.cols * rect.Height() *1.0 / img.rows;
|
||||
cv::resize(img, imgTmp, cv::Size(nWidth, rect.Height()));// <20><><EFBFBD><EFBFBD>Mat<61><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// תһ<D7AA>¸<EFBFBD>ʽ ,<2C><><EFBFBD>ο<EFBFBD><CEBF>Է<EFBFBD><D4B7><EFBFBD><EFBFBD><EFBFBD>,
|
||||
switch (imgTmp.channels())
|
||||
{
|
||||
case 1:
|
||||
cv::cvtColor(imgTmp, imgTmp, CV_GRAY2BGRA); // GRAY<41><59>ͨ<EFBFBD><CDA8>
|
||||
break;
|
||||
case 3:
|
||||
cv::cvtColor(imgTmp, imgTmp, CV_BGR2BGRA); // BGR<47><52>ͨ<EFBFBD><CDA8>
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
int pixelBytes = imgTmp.channels() * (imgTmp.depth() + 1); // <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><D8B6>ٸ<EFBFBD><D9B8>ֽ<EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD>bitmapinfo(<28><><EFBFBD><EFBFBD>ͷ)
|
||||
BITMAPINFO bitInfo;
|
||||
bitInfo.bmiHeader.biBitCount = 8 * pixelBytes;
|
||||
bitInfo.bmiHeader.biWidth = imgTmp.cols;
|
||||
bitInfo.bmiHeader.biHeight = -imgTmp.rows;
|
||||
bitInfo.bmiHeader.biPlanes = 1;
|
||||
bitInfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
bitInfo.bmiHeader.biCompression = BI_RGB;
|
||||
bitInfo.bmiHeader.biClrImportant = 0;
|
||||
bitInfo.bmiHeader.biClrUsed = 0;
|
||||
bitInfo.bmiHeader.biSizeImage = 0;
|
||||
bitInfo.bmiHeader.biXPelsPerMeter = 0;
|
||||
bitInfo.bmiHeader.biYPelsPerMeter = 0;
|
||||
// Mat.data + bitmap<61><70><EFBFBD><EFBFBD>ͷ -> MFC
|
||||
CDC* pDC = GetDC();
|
||||
::StretchDIBits(
|
||||
pDC->GetSafeHdc(),
|
||||
(rect.Width()-nWidth)/2, 0, nWidth, rect.Height(),
|
||||
0, 0, nWidth, rect.Height(),
|
||||
imgTmp.data,
|
||||
&bitInfo,
|
||||
DIB_RGB_COLORS,
|
||||
SRCCOPY
|
||||
);
|
||||
ReleaseDC(pDC);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CALLBACK CPlayWnd::RealDataCallBackEx(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LLONG lParam, LDWORD dwUser)
|
||||
{
|
||||
|
||||
if (dwUser == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
CPlayWnd *pWnd = (CPlayWnd *)dwUser;
|
||||
pWnd->ReceiveRealData(lRealHandle, dwDataType, pBuffer, dwBufSize, lParam);
|
||||
}
|
||||
|
||||
//Process after receiving real-time data
|
||||
void CPlayWnd::ReceiveRealData(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LLONG lParam)
|
||||
{
|
||||
//Stream port number according to the real-time handle.
|
||||
LONG lRealPort = 1;// GetStreamPort(lRealHandle);
|
||||
|
||||
if (lRealHandle == m_DispHanle)
|
||||
{
|
||||
lRealPort = m_nWndID;
|
||||
}
|
||||
|
||||
if (0 == lRealPort)
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Input the stream data getting from the card
|
||||
BOOL bInput = FALSE;
|
||||
switch (dwDataType)
|
||||
{
|
||||
case 0:
|
||||
|
||||
{
|
||||
//Original data
|
||||
bInput = g_PlayAPI.PLAY_InputData(lRealPort, pBuffer, dwBufSize);
|
||||
|
||||
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
//data with frame info
|
||||
|
||||
break;
|
||||
case 2:
|
||||
//yuv data
|
||||
AfxMessageBox("");
|
||||
break;
|
||||
case 3:
|
||||
//pcm audio data
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
137
fast/PlayWnd.h
Normal file
137
fast/PlayWnd.h
Normal file
@@ -0,0 +1,137 @@
|
||||
#if !defined(AFX_PLAYWND_H__158FCA3F_D545_4DB6_9946_0FC9F7D9D5CE__INCLUDED_)
|
||||
#define AFX_PLAYWND_H__158FCA3F_D545_4DB6_9946_0FC9F7D9D5CE__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// PlayWnd.h : header file
|
||||
//
|
||||
|
||||
#include "MessageText.h"
|
||||
#include "dhnetsdk.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPlayWnd window
|
||||
|
||||
/////////////////////////
|
||||
// POPUP MENU ID DEFINE
|
||||
|
||||
#define VIDEO_MENU_BASE WM_USER + 1979
|
||||
#define VIDEO_MENU_END WM_USER + 1985
|
||||
#define VIDEO_MENU_FULLSCREEN WM_USER + 1979
|
||||
#define VIDEO_MENU_MULTISCREEN WM_USER + 1980
|
||||
#define VIDEO_MENU_AUTOADJUST WM_USER + 1981
|
||||
#define VIDEO_MENU_RECORDVIDEO WM_USER + 1982
|
||||
#define VIDEO_MENU_PRINTSCREEN WM_USER + 1983
|
||||
#define VIDEO_MENU_EXITDECODE WM_USER + 1984
|
||||
#define VIDEO_MENU_EXITCYCLE WM_USER + 1985
|
||||
#define VIDEO_REPAINT WM_USER + 1999
|
||||
|
||||
|
||||
// KeyColor
|
||||
|
||||
//#define VIDEO_BACK_COLOR RGB(111,104,160)
|
||||
#define VIDEO_BACK_COLOR RGB(34,34,34)
|
||||
// #define NAME_MENU_FULLSCREEN "ȫ<><C8AB><EFBFBD><EFBFBD>ʾ"
|
||||
// #define NAME_MENU_MULTISCREEN "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ"
|
||||
// #define NAME_MENU_AUTOADJUST "<22>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>"
|
||||
// #define NAME_MENU_EXITDECODE "<22>رս<D8B1><D5BD><EFBFBD>"
|
||||
// #define NAME_MENU_EXITCYCLE "<22>ر<EFBFBD><D8B1><EFBFBD>Ѳ"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPlayWnd dialog
|
||||
|
||||
class CPlayWnd : public CWnd
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CPlayWnd(); // standard constructor
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CPlayWnd)
|
||||
public:
|
||||
virtual BOOL DestroyWindow();
|
||||
protected:
|
||||
virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
|
||||
//}}AFX_VIRTUAL
|
||||
afx_msg void OnVideoMenu(UINT nID);
|
||||
afx_msg LRESULT OnRepaintWnd(WPARAM wParam, LPARAM lParam);
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CPlayWnd)
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
|
||||
|
||||
|
||||
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
#if _MSC_VER >= 1300
|
||||
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
||||
#else
|
||||
afx_msg void OnTimer(UINT nIDEvent);
|
||||
#endif
|
||||
|
||||
#if _MSC_VER >= 1300
|
||||
afx_msg void OnActivateApp(BOOL bActive, DWORD hTask);
|
||||
#else
|
||||
afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
|
||||
#endif
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
void SetWinID(int ID, CString strName, CString strIp, int nPort, CString strUser, CString strPassword)
|
||||
{
|
||||
m_strCameraName = strName;
|
||||
m_strCameraIp = strIp;
|
||||
m_nCameraPort = nPort;
|
||||
m_strUserName = strUser;
|
||||
m_strPassWord = strPassword;
|
||||
m_nWndID = ID;
|
||||
}
|
||||
int GetWinID(void){return m_nWndID;}
|
||||
void SetWndPlaying(bool bPlay){ bIsPlaying = bPlay; }
|
||||
|
||||
private:
|
||||
int m_nWndID;
|
||||
CPoint pointStart;
|
||||
CPoint pointEnd;
|
||||
CPoint pointMove;
|
||||
BOOL m_FlagRect;
|
||||
bool bIsPlaying;
|
||||
|
||||
|
||||
private:
|
||||
CString m_strCameraName;
|
||||
CString m_strCameraIp;
|
||||
CString m_strUserName;
|
||||
CString m_strPassWord;
|
||||
int m_nCameraPort;
|
||||
|
||||
LLONG m_llLoginId;
|
||||
LLONG m_DispHanle;
|
||||
int m_nIndex;
|
||||
int m_nState;
|
||||
|
||||
public:
|
||||
LLONG Login(CString strIpAddr, int nPort, CString strUser, CString strPW);
|
||||
void ServerPlayMode();
|
||||
|
||||
static void CALL_METHOD fDisplayCB(LONG nPort, char * pBuf, LONG nSize, LONG nWidth, LONG nHeight, LONG nStamp, LONG nType, void* pReserved);
|
||||
static void CALLBACK RealDataCallBackEx(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LLONG lParam, LDWORD dwUser);
|
||||
void ReceiveRealData(LLONG lRealHandle, DWORD dwDataType, BYTE *pBuffer, DWORD dwBufSize, LLONG lParam);
|
||||
void DrawMat(cv::Mat& img);
|
||||
void ShowLoginErrorReason(int nError);
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_PLAYWND_H__158FCA3F_D545_4DB6_9946_0FC9F7D9D5CE__INCLUDED_)
|
||||
485
fast/PtzMenu.cpp
Normal file
485
fast/PtzMenu.cpp
Normal file
@@ -0,0 +1,485 @@
|
||||
// DHPtzMenu.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Fast.h"
|
||||
#include "PtzMenu.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPtzMenu dialog
|
||||
|
||||
|
||||
CPtzMenu::CPtzMenu(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CPtzMenu::IDD, pParent)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CPtzMenu)
|
||||
// NOTE: the ClassWizard will add member initialization here
|
||||
//}}AFX_DATA_INIT
|
||||
m_Channel=-1;
|
||||
m_DeviceID=0;
|
||||
}
|
||||
|
||||
|
||||
void CPtzMenu::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CPtzMenu)
|
||||
// NOTE: the ClassWizard will add DDX and DDV calls here
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CPtzMenu, CDialog)
|
||||
//{{AFX_MSG_MAP(CPtzMenu)
|
||||
ON_BN_CLICKED(IDC_OPR_UP, OnOprUp)
|
||||
ON_BN_CLICKED(IDC_OPR_DOWN, OnOprDown)
|
||||
ON_BN_CLICKED(IDC_OPR_LEFT, OnOprLeft)
|
||||
ON_BN_CLICKED(IDC_OPR_RIGHT, OnOprRight)
|
||||
ON_BN_CLICKED(IDC_OPR_OPENMENU, OnOprOpenmenu)
|
||||
ON_BN_CLICKED(IDC_OPR_CLOSEMENU, OnOprClosemenu)
|
||||
ON_BN_CLICKED(IDC_OPR_OK, OnOprOk)
|
||||
ON_BN_CLICKED(IDC_OPR_CANCEL, OnOprCancel)
|
||||
ON_WM_CANCELMODE()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPtzMenu message handlers
|
||||
|
||||
void CPtzMenu::SetPtzParam(LLONG iHandle, int iChannel)
|
||||
{
|
||||
m_DeviceID = iHandle;
|
||||
m_Channel = iChannel;
|
||||
}
|
||||
|
||||
void CPtzMenu::PtzMemuControl(DWORD dwCommand)
|
||||
{
|
||||
if(0 != m_DeviceID)
|
||||
{
|
||||
BOOL bRet = CLIENT_DHPTZControl(m_DeviceID, m_Channel,dwCommand ,0,0,0,FALSE);
|
||||
if(!bRet)
|
||||
{
|
||||
MessageBox(ConvertString("operate PTZ menu "), ConvertString("Prompt"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Move up
|
||||
void CPtzMenu::OnOprUp()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENUUP);
|
||||
}
|
||||
|
||||
//Move down
|
||||
void CPtzMenu::OnOprDown()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENUDOWN);
|
||||
}
|
||||
|
||||
//Move left
|
||||
void CPtzMenu::OnOprLeft()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENULEFT);
|
||||
}
|
||||
|
||||
//Move right
|
||||
void CPtzMenu::OnOprRight()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENURIGHT);
|
||||
}
|
||||
|
||||
//Open menu
|
||||
void CPtzMenu::OnOprOpenmenu()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_OPENMENU);
|
||||
}
|
||||
|
||||
//Close menu
|
||||
void CPtzMenu::OnOprClosemenu()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_CLOSEMENU);
|
||||
}
|
||||
|
||||
//Confirm
|
||||
void CPtzMenu::OnOprOk()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENUOK);
|
||||
}
|
||||
|
||||
//Cancel
|
||||
void CPtzMenu::OnOprCancel()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
PtzMemuControl(DH_EXTPTZ_MENUCANCEL);
|
||||
}
|
||||
|
||||
BOOL CPtzMenu::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
g_SetWndStaticText(this);
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX Property Pages should return FALSE
|
||||
}
|
||||
|
||||
void CPtzMenu::OnCancelMode()
|
||||
{
|
||||
CDialog::OnCancelMode();
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
62
fast/PtzMenu.h
Normal file
62
fast/PtzMenu.h
Normal file
@@ -0,0 +1,62 @@
|
||||
#if !defined(AFX_PTZMENU_H__DE4FF8BD_3232_4109_B899_952B1DC276B0__INCLUDED_)
|
||||
#define AFX_PTZMENU_H__DE4FF8BD_3232_4109_B899_952B1DC276B0__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// DHPtzMenu.h : header file
|
||||
//
|
||||
#include "dhnetsdk.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CDHPtzMenu dialog
|
||||
|
||||
class CPtzMenu : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
//Transmit main window parameter(log in handle and channel number) to the small window.
|
||||
void SetPtzParam(LLONG iHandle, int iChannel);
|
||||
CPtzMenu(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CDHPtzMenu)
|
||||
enum { IDD = IDD_CPtzMenu };
|
||||
// NOTE: the ClassWizard will add data members here
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CDHPtzMenu)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CDHPtzMenu)
|
||||
afx_msg void OnOprUp();
|
||||
afx_msg void OnOprDown();
|
||||
afx_msg void OnOprLeft();
|
||||
afx_msg void OnOprRight();
|
||||
afx_msg void OnOprOpenmenu();
|
||||
afx_msg void OnOprClosemenu();
|
||||
afx_msg void OnOprOk();
|
||||
afx_msg void OnOprCancel();
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnCancelMode();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
private:
|
||||
void PtzMemuControl(DWORD dwCommand);
|
||||
int m_Channel;
|
||||
LLONG m_DeviceID;
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_DHPTZMENU_H__DE4FF8BD_3232_4109_B899_952B1DC276B0__INCLUDED_)
|
||||
660
fast/PtzScreen.cpp
Normal file
660
fast/PtzScreen.cpp
Normal file
@@ -0,0 +1,660 @@
|
||||
// PtzScreen.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Fast.h"
|
||||
#include "PtzScreen.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CPtzScreen
|
||||
|
||||
CPtzScreen::CPtzScreen()
|
||||
{
|
||||
m_pMessageProc = NULL;
|
||||
m_dwMessageUser = 0;
|
||||
m_pGetParams = NULL;
|
||||
m_dwGetParams = 0;
|
||||
m_pSetParams = NULL;
|
||||
m_dwSetParams = 0;
|
||||
m_pRectEventFunc = NULL;
|
||||
m_dwRectEvent = 0;
|
||||
}
|
||||
|
||||
CPtzScreen::~CPtzScreen()
|
||||
{
|
||||
|
||||
}
|
||||
void CPtzScreen::SetActiveWnd(int nIndex,BOOL bRepaint)
|
||||
{
|
||||
if(nIndex >= 0 && nIndex < PRIVATE_MAX_CHANNUM)
|
||||
{
|
||||
SetActivePage(&m_wndVideo[nIndex],bRepaint);
|
||||
}
|
||||
}
|
||||
|
||||
CWnd* CPtzScreen::GetPage(int nIndex)
|
||||
{
|
||||
if (nIndex >= 0 && nIndex < PRIVATE_MAX_CHANNUM)
|
||||
{
|
||||
return &m_wndVideo[nIndex];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
int CPtzScreen::SetShowPlayWin(int nMain, int nSub)
|
||||
{
|
||||
if (nSub < 0 || nSub > PRIVATE_MAX_CHANNUM)
|
||||
{
|
||||
nSub = 0;
|
||||
}
|
||||
|
||||
int nNum = 16;
|
||||
int nBegin = 0;
|
||||
switch(nMain)
|
||||
{
|
||||
case SPLIT1:
|
||||
nNum = 1;
|
||||
nBegin = nSub;
|
||||
break;
|
||||
case SPLIT4:
|
||||
nNum = 4;
|
||||
if (nSub >= 12)
|
||||
{
|
||||
nBegin = 12;
|
||||
}
|
||||
else if (nSub >= 8)
|
||||
{
|
||||
nBegin = 8;
|
||||
}
|
||||
else if (nSub >= 4)
|
||||
{
|
||||
nBegin = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
nBegin = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
case SPLIT9:
|
||||
nNum = 9;
|
||||
if (nSub >= 10)
|
||||
{
|
||||
nBegin = 7;
|
||||
}
|
||||
else
|
||||
{
|
||||
nBegin = 0;
|
||||
}
|
||||
break;
|
||||
case SPLIT16:
|
||||
nNum = 16;
|
||||
nBegin = 0;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
m_bMultiScreen = TRUE;
|
||||
CList<CWnd*, CWnd*> templist;
|
||||
|
||||
POSITION pos = m_PageList.GetHeadPosition();
|
||||
while(pos != NULL)
|
||||
{
|
||||
CWnd* pWnd = m_PageList.GetNext(pos);
|
||||
if (pWnd)
|
||||
{
|
||||
templist.AddTail(pWnd);
|
||||
}
|
||||
}
|
||||
|
||||
m_PageList.RemoveAll();
|
||||
|
||||
/*
|
||||
while(m_PageList.GetCount())
|
||||
{
|
||||
DelPage(GetTailPage());
|
||||
}
|
||||
*/
|
||||
|
||||
for(int i=nBegin; i < (nBegin+nNum); i++)
|
||||
{
|
||||
AddPage(&m_wndVideo[i], TRUE);
|
||||
}
|
||||
|
||||
SetActivePage(&m_wndVideo[nSub], TRUE);
|
||||
|
||||
pos = templist.GetHeadPosition();
|
||||
while(pos != NULL)
|
||||
{
|
||||
CWnd* pWnd = templist.GetNext(pos);
|
||||
if (pWnd)
|
||||
{
|
||||
pWnd->ShowWindow(SW_HIDE);
|
||||
}
|
||||
}
|
||||
|
||||
templist.RemoveAll();
|
||||
|
||||
return m_PageList.GetCount();
|
||||
}
|
||||
void CPtzScreen::SetCallBack(OnMessageProcFunc cbMessageProc, LDWORD dwMessageUser,
|
||||
OnGetParamsFunc cbGetParams, LDWORD dwGetParams,
|
||||
OnSetParamsFunc cbSetParams, LDWORD dwSetParmas,
|
||||
OnRectEventFunc cbEventParams,LDWORD dwRectEventParams)
|
||||
{
|
||||
m_pMessageProc = cbMessageProc;
|
||||
m_dwMessageUser = dwMessageUser;
|
||||
m_pGetParams = cbGetParams;
|
||||
m_dwGetParams = dwGetParams;
|
||||
m_pSetParams = cbSetParams;
|
||||
m_dwSetParams = dwSetParmas;
|
||||
m_pRectEventFunc = cbEventParams;
|
||||
m_dwRectEvent = dwRectEventParams;
|
||||
}
|
||||
BEGIN_MESSAGE_MAP(CPtzScreen, CWnd)
|
||||
//{{AFX_MSG_MAP(CPtzScreen)
|
||||
ON_WM_LBUTTONDOWN()
|
||||
ON_WM_LBUTTONUP()
|
||||
ON_WM_ACTIVATE()
|
||||
ON_WM_CREATE()
|
||||
ON_WM_DESTROY()
|
||||
ON_WM_ACTIVATEAPP()
|
||||
ON_WM_ICONERASEBKGND()
|
||||
ON_WM_ASKCBFORMATNAME()
|
||||
ON_WM_ERASEBKGND()
|
||||
ON_WM_CANCELMODE()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_CAPTURECHANGED()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
||||
|
||||
void CPtzScreen::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
|
||||
{
|
||||
CWnd::OnActivate(nState, pWndOther, bMinimized);
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
}
|
||||
|
||||
|
||||
int CPtzScreen::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if (CWnd::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
CString iniPath = theApp.m_strModulePath + "\\config.ini";
|
||||
// TODO: Add your specialized creation code here
|
||||
for(int i = 0; i < PRIVATE_MAX_CHANNUM; i++)
|
||||
{
|
||||
CString strParam;
|
||||
CHAR value[256] = { 0 };
|
||||
strParam.Format("NAME%d", i + 1);
|
||||
|
||||
GetPrivateProfileString("CAMERA", strParam, "", value, 256, iniPath);
|
||||
CString strName = value;
|
||||
|
||||
strParam.Format("IP%d", i + 1);
|
||||
memset(value, 0, 256);
|
||||
GetPrivateProfileString("CAMERA", strParam, "", value, 256, iniPath);
|
||||
CString strIp = value;
|
||||
|
||||
|
||||
strParam.Format("USERNAME%d", i + 1);
|
||||
memset(value, 0, 256);
|
||||
GetPrivateProfileString("CAMERA", strParam, "", value, 256, iniPath);
|
||||
CString strUser = value;
|
||||
|
||||
strParam.Format("USERPW%d", i + 1);
|
||||
memset(value, 0, 256);
|
||||
GetPrivateProfileString("CAMERA", strParam, "", value, 256, iniPath);
|
||||
CString strPassword = value;
|
||||
|
||||
strParam.Format("PORT%d", i + 1);
|
||||
memset(value, 0, 256);
|
||||
int nPort = GetPrivateProfileInt("CAMERA", strParam, 37777, iniPath);
|
||||
|
||||
|
||||
m_wndVideo[i].SetWinID(i+1, strName, strIp, nPort, strUser, strPassword);
|
||||
|
||||
m_wndVideo[i].Create(
|
||||
NULL,
|
||||
NULL,
|
||||
WS_VISIBLE | WS_CHILD,
|
||||
CRect(0, 0, 0, 0),
|
||||
this,
|
||||
1979,
|
||||
NULL);
|
||||
|
||||
|
||||
|
||||
AddPage(&m_wndVideo[i]);
|
||||
}
|
||||
|
||||
SetActivePage(&m_wndVideo[0], TRUE);
|
||||
SetDrawActivePage(TRUE, RGB(248,5,182), RGB(248,5,182));
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CPtzScreen::OnDestroy()
|
||||
{
|
||||
CWnd::OnDestroy();
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
for(int i=0; i < PRIVATE_MAX_CHANNUM; i++)
|
||||
{
|
||||
m_wndVideo[0].DestroyWindow();
|
||||
}
|
||||
}
|
||||
#if _MSC_VER > 1300
|
||||
void CPtzScreen::OnActivateApp(BOOL bActive, DWORD hTask)
|
||||
#else
|
||||
void CPtzScreen::OnActivateApp(BOOL bActive, HTASK hTask)
|
||||
#endif
|
||||
{
|
||||
CWnd::OnActivateApp(bActive, hTask);
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
}
|
||||
|
||||
void CPtzScreen::OnIconEraseBkgnd(CDC* pDC)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CWnd::OnIconEraseBkgnd(pDC);
|
||||
}
|
||||
|
||||
void CPtzScreen::OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
CWnd::OnAskCbFormatName(nMaxCount, lpszString);
|
||||
}
|
||||
|
||||
BOOL CPtzScreen::OnEraseBkgnd(CDC* pDC)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
CRect rt;
|
||||
GetClientRect(&rt);
|
||||
CBrush br;
|
||||
br.CreateSolidBrush(RGB(192,192,192));
|
||||
pDC->FillRect(&rt,&br);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CPtzScreen::OnCancelMode()
|
||||
{
|
||||
CWnd::OnCancelMode();
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
}
|
||||
|
||||
void CPtzScreen::OnPaint()
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
// TODO: Add your message handler code here
|
||||
UpdateWnd();
|
||||
// Do not call CWnd::OnPaint() for painting messages
|
||||
}
|
||||
|
||||
void CPtzScreen::OnCaptureChanged(CWnd *pWnd)
|
||||
{
|
||||
// TODO: Add your message handler code here
|
||||
|
||||
CWnd::OnCaptureChanged(pWnd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
103
fast/PtzScreen.h
Normal file
103
fast/PtzScreen.h
Normal file
@@ -0,0 +1,103 @@
|
||||
#if !defined(AFX_PTZSCREEN_H__E554F905_77BB_46C1_B0AC_DABD656755CE__INCLUDED_)
|
||||
#define AFX_PTZSCREEN_H__E554F905_77BB_46C1_B0AC_DABD656755CE__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "dhnetsdk.h"
|
||||
#include "BSWndContainer.h"
|
||||
#include "playWnd.h"
|
||||
// PtzScreen.h : header file
|
||||
//
|
||||
#define PRIVATE_MAX_CHANNUM 16
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//Window split type
|
||||
enum{
|
||||
SPLIT1 = 0,
|
||||
SPLIT4,
|
||||
SPLIT9,
|
||||
SPLIT16,
|
||||
SPLIT_TOTAL
|
||||
};
|
||||
|
||||
typedef void (CALLBACK *OnMessageProcFunc)(int nWndID, UINT message, LDWORD dwUser);
|
||||
typedef BOOL (CALLBACK *OnGetParamsFunc)(int nWndID, int type, LDWORD dwUser);
|
||||
typedef void (CALLBACK *OnSetParamsFunc)(int nWndID, int type, LDWORD dwUser);
|
||||
typedef void (CALLBACK *OnRectEventFunc)(RECT WinRect,CPoint &pointStart,CPoint &pointEnd, LDWORD dwUser);
|
||||
|
||||
class CPtzScreen : public CBSWndContainer
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CPtzScreen();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CPtzScreen)
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CPtzScreen();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CPtzScreen)
|
||||
|
||||
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
|
||||
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
|
||||
afx_msg void OnDestroy();
|
||||
#if _MSC_VER >= 1300
|
||||
afx_msg void OnActivateApp(BOOL bActive, DWORD hTask);
|
||||
#else
|
||||
afx_msg void OnActivateApp(BOOL bActive, HTASK hTask);
|
||||
#endif
|
||||
afx_msg void OnIconEraseBkgnd(CDC* pDC);
|
||||
afx_msg void OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString);
|
||||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||||
afx_msg void OnCancelMode();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnCaptureChanged(CWnd *pWnd);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
public:
|
||||
|
||||
void SetCallBack(OnMessageProcFunc cbMessageProc, LDWORD dwMessageUser,
|
||||
OnGetParamsFunc cbGetParams, LDWORD dwGetParams,
|
||||
OnSetParamsFunc cbSetParams, LDWORD dwSetParmas,
|
||||
OnRectEventFunc cbEventParams,LDWORD dwRectEventParams);
|
||||
int SetShowPlayWin(int nMain, int nSub=0);
|
||||
CWnd* GetPage(int nIndex);
|
||||
void SetActiveWnd(int nIndex,BOOL bRepaint=TRUE);
|
||||
|
||||
|
||||
public:
|
||||
OnMessageProcFunc m_pMessageProc;
|
||||
LDWORD m_dwMessageUser;
|
||||
OnGetParamsFunc m_pGetParams;
|
||||
LDWORD m_dwGetParams;
|
||||
OnSetParamsFunc m_pSetParams;
|
||||
LDWORD m_dwSetParams;
|
||||
OnRectEventFunc m_pRectEventFunc;
|
||||
LDWORD m_dwRectEvent;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// private member for inter user
|
||||
private:
|
||||
|
||||
CPlayWnd m_wndVideo[PRIVATE_MAX_CHANNUM];
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_PTZSCREEN_H__E554F905_77BB_46C1_B0AC_DABD656755CE__INCLUDED_)
|
||||
80
fast/ReadMe.txt
Normal file
80
fast/ReadMe.txt
Normal file
@@ -0,0 +1,80 @@
|
||||
================================================================================
|
||||
MICROSOFT 基础类库 : MFCApplication6 项目概述
|
||||
===============================================================================
|
||||
|
||||
应用程序向导已为您创建了此 MFCApplication6 应用程序。此应用程序不仅演示 Microsoft 基础类的基本使用方法,还可作为您编写应用程序的起点。
|
||||
|
||||
本文件概要介绍组成 MFCApplication6 应用程序的每个文件的内容。
|
||||
|
||||
MFCApplication6.vcxproj
|
||||
这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。
|
||||
|
||||
MFCApplication6.vcxproj.filters
|
||||
这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。
|
||||
|
||||
MFCApplication6.h
|
||||
这是应用程序的主头文件。
|
||||
其中包括其他项目特定的标头(包括 Resource.h),并声明 CMFCApplication6App 应用程序类。
|
||||
|
||||
MFCApplication6.cpp
|
||||
这是包含应用程序类 CMFCApplication6App 的主应用程序源文件。
|
||||
|
||||
MFCApplication6.rc
|
||||
这是程序使用的所有 Microsoft Windows 资源的列表。它包括 RES 子目录中存储的图标、位图和光标。此文件可以直接在 Microsoft Visual C++ 中进行编辑。项目资源包含在 2052 中。
|
||||
|
||||
res\MFCApplication6.ico
|
||||
这是用作应用程序图标的图标文件。此图标包括在主资源文件 MFCApplication6.rc 中。
|
||||
|
||||
res\MFCApplication6.rc2
|
||||
此文件包含不在 Microsoft Visual C++ 中进行编辑的资源。您应该将不可由资源编辑器编辑的所有资源放在此文件中。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
对于主框架窗口:
|
||||
该项目包含一个标准的 MFC 接口。
|
||||
|
||||
MainFrm.h, MainFrm.cpp
|
||||
这些文件中包含框架类 CFastMainFrame,该类派生自
|
||||
CFrameWnd 并控制所有 SDI 框架功能。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
应用程序向导创建一种文档类型和一个视图:
|
||||
|
||||
MFCApplication6Doc.h、MFCApplication6Doc.cpp - 文档
|
||||
这些文件包含 CFastMainDoc 类。编辑这些文件以添加特殊文档数据并实现文件保存和加载(通过 CFastMainDoc::Serialize)。
|
||||
|
||||
MFCApplication6View.h、MFCApplication6View.cpp - 文档视图
|
||||
这些文件包含 FastMainView 类。
|
||||
FastMainView 对象用于查看 CFastMainDoc 对象。
|
||||
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他功能:
|
||||
|
||||
ActiveX 控件
|
||||
该应用程序包含对使用 ActiveX 控件的支持。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他标准文件:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
这些文件用于生成名为 MFCApplication6.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。
|
||||
|
||||
Resource.h
|
||||
这是标准头文件,可用于定义新的资源 ID。Microsoft Visual C++ 将读取并更新此文件。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
其他注释:
|
||||
|
||||
应用程序向导使用“TODO:”来指示应添加或自定义的源代码部分。
|
||||
|
||||
如果应用程序使用共享 DLL 中的 MFC,您将需要重新分发 MFC DLL。如果应用程序所使用的语言与操作系统的区域设置不同,则还需要重新分发相应的本地化资源 mfc110XXX.DLL。
|
||||
有关上述话题的更多信息,请参见 MSDN 文档中有关重新分发 Visual C++ 应用程序的部分。
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
20
fast/Resource.h
Normal file
20
fast/Resource.h
Normal file
@@ -0,0 +1,20 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// <20><><EFBFBD>ɵ<EFBFBD> Microsoft Visual C++ <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
// <20><> MFCApplication6.rc ʹ<><CAB9>
|
||||
//
|
||||
#define IDD_ABOUTBOX 100
|
||||
#define IDD_MFCAPPLICATION6_FORM 101
|
||||
#define IDP_OLE_INIT_FAILED 100
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDR_MFCApplication6TYPE 130
|
||||
|
||||
// <20>¶<EFBFBD><C2B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ĭ<EFBFBD><C4AC>ֵ
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 310
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 310
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#endif
|
||||
#endif
|
||||
BIN
fast/res/Fast.ico
Normal file
BIN
fast/res/Fast.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
BIN
fast/res/Fast.rc2
Normal file
BIN
fast/res/Fast.rc2
Normal file
Binary file not shown.
BIN
fast/res/FastMainDoc.ico
Normal file
BIN
fast/res/FastMainDoc.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
24
fast/stdafx.cpp
Normal file
24
fast/stdafx.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
// stdafx.cpp : ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Դ<EFBFBD>ļ<EFBFBD>
|
||||
// MFCApplication6.pch <20><><EFBFBD><EFBFBD>ΪԤ<CEAA><D4A4><EFBFBD><EFBFBD>ͷ
|
||||
// stdafx.obj <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
CString ConvertString(CString strText)
|
||||
{
|
||||
char *val = new char[200];
|
||||
CString strIniPath, strRet;
|
||||
|
||||
memset(val, 0, 200);
|
||||
GetPrivateProfileString("String", strText, "",
|
||||
val, 200, "./langchn.ini");
|
||||
strRet = val;
|
||||
if (strRet.GetLength() == 0)
|
||||
{
|
||||
//If there is no corresponding string in ini file then set it to be default value(English)
|
||||
strRet = strText;
|
||||
}
|
||||
delete val;
|
||||
return strRet;
|
||||
}
|
||||
50
fast/stdafx.h
Normal file
50
fast/stdafx.h
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
// stdafx.h : <20><>ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
|
||||
// <20><><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
|
||||
// <20>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD><EFBFBD>ļ<EFBFBD>
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // <20><> Windows ͷ<><CDB7><EFBFBD>ų<EFBFBD><C5B3><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
#endif
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // ijЩ CString <20><><EFBFBD>캯<EFBFBD><ECBAAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>
|
||||
|
||||
// <20>ر<EFBFBD> MFC <20><>ijЩ<C4B3><D0A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD><C9B7>ĺ<EFBFBD><C4BA>Եľ<D4B5><C4BE><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
||||
#include <afxext.h> // MFC <20><>չ
|
||||
|
||||
|
||||
#include <afxdisp.h> // MFC <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
|
||||
|
||||
#ifndef _AFX_NO_OLE_SUPPORT
|
||||
#include <afxdtctl.h> // MFC <20><> Internet Explorer 4 <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>֧<EFBFBD><D6A7>
|
||||
#endif
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC <20><> Windows <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>֧<EFBFBD><D6A7>
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
#include <afxcontrolbars.h> // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳؼ<CDBF><D8BC><EFBFBD><EFBFBD><EFBFBD> MFC ֧<><D6A7>
|
||||
|
||||
#include <opencv2/opencv.hpp>
|
||||
#include <opencv2/highgui/highgui_c.h>
|
||||
|
||||
CString ConvertString(CString strText);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8
fast/targetver.h
Normal file
8
fast/targetver.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> SDKDDKVer.h <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD>߰汾<DFB0><E6B1BE> Windows ƽ̨<C6BD><CCA8>
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>ҪΪ<D2AA><CEAA>ǰ<EFBFBD><C7B0> Windows ƽ̨<C6BD><CCA8><EFBFBD><EFBFBD>Ӧ<EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WinSDKVer.h<><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><> _WIN32_WINNT <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪҪ֧<D2AA>ֵ<EFBFBD>ƽ̨<C6BD><CCA8>Ȼ<EFBFBD><C8BB><EFBFBD>ٰ<EFBFBD><D9B0><EFBFBD> SDKDDKVer.h<><68>
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
Reference in New Issue
Block a user