📄 sampledlg.cpp
字号:
// SAMPLEDlg.cpp : implementation file
//
#include "stdafx.h"
#include "SAMPLE.h"
#include "SAMPLEDlg.h"
#include <winsock2.h>
#include "NetRemoteCtrlDlg.h"
#include "NativeDlg.h"
#include "ConSDK.h"
#include "TalkDVRDlg.h"
//#include "Mmsystem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
OUT_INFO g_OutInfo[MAXOUTNO];
USER_DVR_PARAMETER* Con_pDVRPara;
DWORD nDriverMask ;
BOOL DispImage[MAXOUTNO];
BOOL RecImage[MAXOUTNO];
BOOL IFrameRecImage[MAXOUTNO];
CTalkDVRDlg *pTalkMan;
CNetRemoteCtrlDlg *pNetRemoteCtlDlg;
int nHourStart,nMinuteStart,nHourEnd,nMinuteEnd;
char logBuf[64*1024];
BOOL isContinue = 0;
int pFrameCount = 0;
int g_pFrameCount = 0;
LoginParam m_LoginParam;
TM8100_NET_NODE *pNetNodeHead ;
extern BOOL ENGLISH;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSAMPLEDlg dialog
CSAMPLEDlg::CSAMPLEDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSAMPLEDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSAMPLEDlg)
m_imageno =2;
m_monitor =1;
m_date =8;
m_hour = 8;
m_minute =42;
m_month =9;
m_year =2;
m_portno = 1;
m_endhour = 8;
m_endminute =42;
m_Passwd = _T("888888");
m_ServPort=8202;
m_IP = _T("192.168.55.222");
m_UpdateFile = _T("");
m_state = _T("");
m_User = _T("123");
m_ServerPort = 5000;
m_UseTrans = FALSE;
m_LocalPort = 5000;
m_MulticastPort = 6000;
m_ServerPasswd = _T("123");
m_SetPassword = _T("");
m_P1 = FALSE;
m_P2 = FALSE;
m_P3 = FALSE;
m_P4 = FALSE;
m_P5 = FALSE;
m_P6 = FALSE;
m_P7 = FALSE;
m_P8 = FALSE;
m_P9 = FALSE;
m_P10 = FALSE;
m_P11 = FALSE;
m_P12 = FALSE;
m_P13 = FALSE;
m_P14 = FALSE;
m_P15 = FALSE;
m_P16 = FALSE;
m_PanProtocol = _T("");
m_PFrameCount = 0;
m_RemotePlaySpeed=3;
hcount=0;
m_UpdatePort = 5028;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
Con_pDVRPara=NULL;
pNetNodeHead = NULL ;
pNetRemoteCtlDlg=NULL;
m_pBackFile = NULL;
m_nCurDVRType = 0;
}
void CSAMPLEDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSAMPLEDlg)
DDX_Control(pDX, IDC_EDITPFRAMECOUNT, m_Con_PFrameCount);
DDX_Control(pDX, IDC_COMBO_SETIOMODE, m_SetIoMode);
DDX_Control(pDX, IDC_COMBO_SETUSER, m_SetUser);
DDX_Control(pDX, IDC_LIST_DISKINFO, m_DiskInfo);
DDX_Control(pDX, IDC_VIDEO3, m_Video3);
DDX_Control(pDX, IDC_MULTICAST_IP, m_cMulticastIp);
DDX_Control(pDX, IDC_IP_SERVER, m_cIpServer);
DDX_Control(pDX, IDC_VIDEO2, m_Video2);
DDX_Control(pDX, IDC_VIDEO1, m_Video1);
DDX_Control(pDX, IDC_LIST1, m_AlarmList);
DDX_Control(pDX, IDC_TREE1, m_NetTree);
DDX_Text(pDX, IDC_EDITIMAGENO, m_imageno);
DDX_Text(pDX, IDC_EDITDATE, m_date);
DDX_Text(pDX, IDC_EDITHOUR, m_hour);
DDX_Text(pDX, IDC_EDITMINUTE, m_minute);
DDX_Text(pDX, IDC_EDITMONTH, m_month);
DDX_Text(pDX, IDC_EDITYEAR, m_year);
DDV_MinMaxByte(pDX, m_year, 0, 99);
DDX_Text(pDX, IDC_EDITPORTNO, m_portno);
DDX_Text(pDX, IDC_EDITENDHOUR, m_endhour);
DDX_Text(pDX, IDC_EDITENDMINUTE, m_endminute);
DDX_Text(pDX, IDC_EDITPASSWD, m_Passwd);
DDX_Text(pDX, IDC_EDITSERVPORT,m_ServPort);
DDX_Text(pDX, IDC_EDITIP, m_IP);
DDX_Text(pDX, IDC_EDIT_FILE, m_UpdateFile);
DDX_Text(pDX, IDC_STATIC_STATE, m_state);
DDX_Text(pDX, IDC_EDIT_USER, m_User);
DDX_Text(pDX, IDC_EDIT_SERVERPORT, m_ServerPort);
DDX_Check(pDX, IDC_CHK_USETRANSMIT, m_UseTrans);
DDX_Text(pDX, IDC_EDIT_LOCALPORT, m_LocalPort);
DDX_Text(pDX, IDC_EDIT_MULTICASTPORT, m_MulticastPort);
DDX_Text(pDX, IDC_EDIT_SERVERPASS, m_ServerPasswd);
DDX_Text(pDX, IDC_EDIT_SETPASS, m_SetPassword);
DDX_Check(pDX, IDC_CHECK_P1, m_P1);
DDX_Check(pDX, IDC_CHECK_P2, m_P2);
DDX_Check(pDX, IDC_CHECK_P3, m_P3);
DDX_Check(pDX, IDC_CHECK_P4, m_P4);
DDX_Check(pDX, IDC_CHECK_P5, m_P5);
DDX_Check(pDX, IDC_CHECK_P6, m_P6);
DDX_Check(pDX, IDC_CHECK_P7, m_P7);
DDX_Check(pDX, IDC_CHECK_P8, m_P8);
DDX_Check(pDX, IDC_CHECK_P9, m_P9);
DDX_Check(pDX, IDC_CHECK_P10, m_P10);
DDX_Check(pDX, IDC_CHECK_P11, m_P11);
DDX_Check(pDX, IDC_CHECK_P12, m_P12);
DDX_Check(pDX, IDC_CHECK_P13, m_P13);
DDX_Check(pDX, IDC_CHECK_P14, m_P14);
DDX_Check(pDX, IDC_CHECK_P15, m_P15);
DDX_Check(pDX, IDC_CHECK_P16, m_P16);
DDX_Text(pDX, IDC_EDIT_PANPROTOCOL, m_PanProtocol);
DDX_Text(pDX, IDC_EDITPFRAMECOUNT, m_PFrameCount);
DDX_Text(pDX, IDC_EDITUPDATEPORT, m_UpdatePort);
DDV_MinMaxInt(pDX, m_UpdatePort, 1, 65535);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSAMPLEDlg, CDialog)
//{{AFX_MSG_MAP(CSAMPLEDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_MESSAGE(WM_RECEIVENET_MSG,OnNetMsgPro)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
ON_BN_CLICKED(IDC_BUTTON9, OnButton9)
ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
ON_BN_CLICKED(IDC_BUTTON12, OnButton12)
ON_BN_CLICKED(IDC_BUTTON13, OnButton13)
ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
ON_BN_CLICKED(IDC_BUTTON15, OnButton15)
ON_BN_CLICKED(IDC_BUTTON16, OnButton16)
ON_BN_CLICKED(IDC_BUTTON17, OnButton17)
ON_BN_CLICKED(IDC_BUTTON18, OnButton18)
ON_BN_CLICKED(IDC_BUTTON19, OnButton19)
ON_BN_CLICKED(IDC_BUTTON20, OnButton20)
ON_BN_CLICKED(IDC_BUTTON21, OnButton21)
ON_BN_CLICKED(IDC_BUTTON22, OnButton22)
ON_BN_CLICKED(IDC_BUTTON23, OnButton23)
ON_BN_CLICKED(IDC_BUTTON28, OnButton28)
ON_BN_CLICKED(IDC_BUTTON29, OnButton29)
ON_BN_CLICKED(IDC_BUTTON30, OnButton30)
ON_BN_CLICKED(IDC_BUTTON31, OnButton31)
ON_BN_CLICKED(IDC_BUTTON32, OnButton32)
ON_BN_CLICKED(IDC_BUTTON33, OnButton33)
ON_BN_CLICKED(IDC_BUTTON34, OnButton34)
ON_BN_CLICKED(IDC_BUTTON35, OnButton35)
ON_BN_CLICKED(IDC_BUTTON36, OnButton36)
ON_BN_CLICKED(IDC_BUTTON37, OnButton37)
ON_BN_CLICKED(IDC_BUTTON38, OnButton38)
ON_BN_CLICKED(IDC_BUTTON39, OnButton39)
ON_BN_CLICKED(IDC_BUTTON40, OnButton40)
ON_BN_CLICKED(IDC_BUTTON41, OnButton41)
ON_BN_CLICKED(IDC_BUTTON44, OnButton44)
ON_BN_CLICKED(IDC_BUTTON43, OnButton43)
ON_BN_CLICKED(IDC_BUTTON42, OnButton42)
ON_BN_CLICKED(IDC_BUTTON45, OnButton45)
ON_BN_CLICKED(IDC_BUTTON46, OnButton46)
ON_BN_CLICKED(IDC_BUTTON49, OnButton49)
ON_BN_CLICKED(IDC_BUTTON51, OnButton51)
ON_BN_CLICKED(IDC_BUTTON52, OnButton52)
ON_BN_CLICKED(IDC_BUTTON53, OnButton53)
ON_BN_CLICKED(IDC_BUTTON54, OnButton54)
ON_BN_CLICKED(IDC_BUTTON55, OnButton55)
ON_BN_CLICKED(IDC_BUTTON56, OnButton56)
ON_BN_CLICKED(IDC_BUTTON57, OnButton57)
ON_WM_CLOSE()
ON_WM_MOVE()
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
ON_BN_CLICKED(IDC_RADIO_NONE, OnRadioNone)
ON_BN_CLICKED(IDC_RADIO_CHANNEL1, OnRadioChannel1)
ON_BN_CLICKED(IDC_RADIO_CHANNEL2, OnRadioChannel2)
ON_BN_CLICKED(IDC_RADIO_CHANNEL3, OnRadioChannel3)
ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER1, OnReleasedcaptureSlider1)
ON_BN_CLICKED(IDC_CHK_USETRANSMIT, OnChkUsetransmit)
ON_BN_CLICKED(IDC_BTN_GETRECSTATE, OnBtnGetrecstate)
ON_BN_CLICKED(IDC_BTN_GETVIDEOLOST, OnBtnGetvideolost)
ON_BN_CLICKED(IDC_BTN_GETMOVESTATE, OnBtnGetmovestate)
ON_BN_CLICKED(IDC_BTN_GETSENSOR, OnBtnGetsensor)
ON_BN_CLICKED(IDC_BTN_GETDISKINFO, OnBtnGetdiskinfo)
ON_BN_CLICKED(IDC_BTN_RESTART, OnBtnRestart)
ON_BN_CLICKED(IDC_BTN_SETPASSWORD, OnBtnSetpassword)
ON_CBN_SELCHANGE(IDC_COMBO_SETIOMODE, OnSelchangeComboSetiomode)
ON_BN_CLICKED(IDC_CHECK_P1, OnCheckP1)
ON_BN_CLICKED(IDC_CHECK_P2, OnCheckP2)
ON_BN_CLICKED(IDC_CHECK_P3, OnCheckP3)
ON_BN_CLICKED(IDC_CHECK_P4, OnCheckP4)
ON_BN_CLICKED(IDC_CHECK_P5, OnCheckP5)
ON_BN_CLICKED(IDC_CHECK_P6, OnCheckP6)
ON_BN_CLICKED(IDC_CHECK_P7, OnCheckP7)
ON_BN_CLICKED(IDC_CHECK_P8, OnCheckP8)
ON_BN_CLICKED(IDC_CHECK_P9, OnCheckP9)
ON_BN_CLICKED(IDC_CHECK_P10, OnCheckP10)
ON_BN_CLICKED(IDC_CHECK_P11, OnCheckP11)
ON_BN_CLICKED(IDC_CHECK_P12, OnCheckP12)
ON_BN_CLICKED(IDC_CHECK_P13, OnCheckP13)
ON_BN_CLICKED(IDC_CHECK_P14, OnCheckP14)
ON_BN_CLICKED(IDC_CHECK_P15, OnCheckP15)
ON_BN_CLICKED(IDC_CHECK_P16, OnCheckP16)
ON_BN_CLICKED(IDC_BTN_SETPAN, OnBtnSetpan)
ON_BN_CLICKED(IDC_BTN_GETPAN, OnBtnGetpan)
ON_BN_CLICKED(IDC_BTN_GETENVELOP, OnBtnGetenvelop)
ON_BN_CLICKED(IDC_GETHEARTBEATCONDITION, OnGetheartbeatcondition)
ON_BN_CLICKED(IDC_DOMEBETACONTROL, OnDomebetacontrol)
ON_BN_CLICKED(IDC_BUTTON24, OnButton224)
ON_COMMAND(IDD_SLOW_HALFSPEED, OnSlowHalfspeed)
ON_COMMAND(IDD_SLOW_QUARTEREDSPEED, OnSlowQuarteredspeed)
ON_COMMAND(ID_FAST_1X, OnFast1x)
ON_COMMAND(ID_FAST_2X, OnFast2x)
ON_COMMAND(IDD_SLOW_HALFQUARTEREDSPEED, OnSlowHalfquarteredspeed)
ON_BN_CLICKED(IDC_BUTTON500, OnButton500)
ON_BN_CLICKED(IDC_BUTTON58, OnButton580)
ON_BN_CLICKED(IDC_BUTTON59, OnButton590)
ON_WM_TIMER()
ON_EN_CHANGE(IDC_EDIT_SETPASS, OnChangeEditSetpass)
ON_BN_CLICKED(IDC_STATIC_STATE, OnStaticState)
ON_EN_CHANGE(IDC_EDITYEAR, OnChangeEdityear)
ON_EN_CHANGE(IDC_EDIT_PANPROTOCOL, OnChangeEditPanprotocol)
ON_COMMAND(ID_PAUSE, OnPause)
ON_COMMAND(ID_PACE, OnPace)
ON_COMMAND(ID_FASTFORWARD, OnFastforward)
ON_BN_CLICKED(IDC_BUTTON25, OnButton25)
ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
ON_BN_CLICKED(IDC_BUTTON_PTZSPEED, OnButtonPtzspeed)
ON_BN_CLICKED(IDC_BUTTON_PTZLEFT, OnButtonPtzleft)
ON_BN_CLICKED(IDC_BUTTON_PTZRIGHT, OnButtonPtzright)
ON_BN_CLICKED(IDC_BUTTON_PTZCALL, OnButtonPtzcall)
ON_BN_CLICKED(IDC_STATIC_DEVTYPE, OnStaticDevtype)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSAMPLEDlg message handlers
int CSAMPLEDlg::CheckUser(unsigned long nIpAddr,LPCTSTR UserName,LPCTSTR Passwd)
{
if(strcmp(UserName,"123")==0&&strcmp(Passwd,"123")==0)
return 1;
else
return 0;
}
BOOL CSAMPLEDlg::OnInitDialog()
{
int i;
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
for(i=0;i<MAXOUTNO;i++)
{
memset(&g_OutInfo[i],0,sizeof(OUT_INFO));
DispImage[i]=FALSE;
RecImage[i]=FALSE;
IFrameRecImage[i]=FALSE;
}
// TODO: Add extra initialization here
//g_ConSDK=new CConSDK();
HICON hIcon1, hIcon2 ;
hIcon1 = AfxGetApp()->LoadIcon(IDR_SIGNALNO_ICON) ;
hIcon2 = AfxGetApp()->LoadIcon(IDR_SINGALHV_ICON) ;
m_TreeImage.Create(16, 16, ILC_MASK, 2, 2) ;
m_TreeImage.Add(hIcon1) ;
m_TreeImage.Add(hIcon2) ;
m_NetTree.SetImageList(&m_TreeImage,TVSIL_NORMAL);
Con_Initial(this->m_hWnd,WM_RECEIVENET_MSG,'d');//此处假定D盘为备份文件的盘符
if(ENGLISH)
{
hTreeRoot = m_NetTree.InsertItem(_T("Net"),0,0);//English
}
else
{
hTreeRoot = m_NetTree.InsertItem(_T("网络"),0,0);//Chinese
}
FindAllDiskDriver();
PB_IniPlayer(&g_OutInfo[0].hImage,GetDlgItem(IDC_VIDEO1)->m_hWnd);//pImageDlg1->m_hWnd);
PB_OpenStream(g_OutInfo[0].hImage);
PB_StartJitterFilter(g_OutInfo[0].hImage,FALSE);
PB_SetupJitterFilterFrameCount(g_OutInfo[0].hImage,0,100);
PB_IniPlayer(&g_OutInfo[1].hImage,GetDlgItem(IDC_VIDEO2)->m_hWnd,TRUE);//pImageDlg1->m_hWnd);
PB_OpenStream(g_OutInfo[1].hImage);
PB_StartJitterFilter(g_OutInfo[1].hImage,FALSE);
PB_SetupJitterFilterFrameCount(g_OutInfo[1].hImage,0,100);
PB_IniPlayer(&g_OutInfo[2].hImage,GetDlgItem(IDC_VIDEO3)->m_hWnd);//pImageDlg1->m_hWnd);
PB_OpenStream(g_OutInfo[2].hImage);
PB_StartJitterFilter(g_OutInfo[2].hImage,FALSE);
PB_SetupJitterFilterFrameCount(g_OutInfo[2].hImage,0,100);
Con_RegRealImageProc(RealImageCallBack);
Con_RegRemoteRecFile(RemoteRecDataCallBack);
((CButton *)GetDlgItem(IDC_RADIO_LAN))->SetCheck(1);
((CButton *)GetDlgItem(IDC_RADIO_LANUP))->SetCheck(1);
pNetRemoteCtlDlg=new CNetRemoteCtrlDlg(this);
pNetRemoteCtlDlg->Create(this);
pTalkMan=new CTalkDVRDlg(this);
pTalkMan->Create(this);
((CButton *)GetDlgItem(IDC_RADIO_NONE))->SetCheck(1);
((CSliderCtrl *)GetDlgItem(IDC_SLIDER1))->SetRange(0,0,TRUE);
m_cIpServer.SetAddress(192,168,55,83);
m_cMulticastIp.SetAddress(234,5,6,7);
m_SetUser.SetCurSel(0);
m_SetIoMode.SetCurSel(0);
popMenu.LoadMenu(IDR_CTRLPLAYSPEED);
m_12XCheck.LoadBitmap(IDB_BITMAP_12X);
m_12XUnCheck.LoadBitmap(IDB_BITMAP_12XU);
m_14XCheck.LoadBitmap(IDB_BITMAP_14X);
m_14XUnCheck.LoadBitmap(IDB_BITMAP_14XU);
m_18XCheck.LoadBitmap(IDB_BITMAP_18X);
m_18XUnCheck.LoadBitmap(IDB_BITMAP_18XU);
m_1XCheck.LoadBitmap(IDB_BITMAP_1X);
m_1XUnCheck.LoadBitmap(IDB_BITMAP_1XU);
m_2XCheck.LoadBitmap(IDB_BITMAP_2X);
m_2XUnCheck.LoadBitmap(IDB_BITMAP_2XU);
m_4XCheck.LoadBitmap(IDB_BITMAP_4X);
m_4XUnCheck.LoadBitmap(IDB_BITMAP_4XU);
m_8XCheck.LoadBitmap(IDB_BITMAP_8X);
m_8XUnCheck.LoadBitmap(IDB_BITMAP_8XU);
m_PauseCheck.LoadBitmap(IDB_BITMAP_PAUSE);
m_PauseUnCheck.LoadBitmap(IDB_BITMAP_PAUSEU);
m_PaceCheck.LoadBitmap(IDB_BITMAP_PACE);
m_PaceUnCheck.LoadBitmap(IDB_BITMAP_PACEU);
m_FastCheck.LoadBitmap(IDB_BITMAP_FAST);
m_FastUnCheck.LoadBitmap(IDB_BITMAP_FASTU);
SetDlgItemText(IDC_STATIC_GETPARA,"");
return TRUE; // return TRUE unless you set the focus to a control
}
void CSAMPLEDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CSAMPLEDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CSAMPLEDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CSAMPLEDlg::DelItem(HTREEITEM hItem)
{
if(hItem == NULL)
return ;
HTREEITEM Temp;
Temp = m_NetTree.GetChildItem (hItem);
while (Temp != NULL)
{
if(! m_NetTree.ItemHasChildren (Temp)) // 没有子结点
{
m_NetTree.DeleteItem (Temp);
Temp = m_NetTree.GetChildItem (hItem);
continue;
}
Temp = m_NetTree.GetChildItem (Temp);
}
}
void CSAMPLEDlg::CloseDVR(unsigned long nIpAddr,unsigned short nServPort)
{
TM8100_NET_NODE *cur;
int i;
cur=pNetNodeHead;
while(cur!=NULL)
{
if(cur->ipAddr==nIpAddr&&cur->nServPort==nServPort)
{
if(cur->hNodeTree)
{
DelItem(cur->hNodeTree);
m_NetTree.SetItemImage(cur->hNodeTree,0,0);
cur->hRealTimeImageNodeTree = NULL ;
for (i=0;i<PORTNUM;i++)
cur->hRealTimeImagePort[i] = NULL ;
cur->pRecDateHead = NULL ;
cur->nRealMulticast = 0 ;
break;
}
}
cur=cur->next;
}
}
void CSAMPLEDlg::OnNetMsgPro(WPARAM wParam, LPARAM lParam)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -