⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cammon.cpp

📁 用Embedded Visual C++ Win32 API开发的运行于Windows CE Pocket PC的多点移动视频监控软件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			else if( Download_flag ==1)		
			{
				ReadJpeg( );
				Download_flag =0;
			}

			DisplayJpeg(hDlg);
			break;
		case WM_COMMAND:
			wmId = LOWORD(wParam);
			switch (wmId)
			{
			case IDOK:
				::KillTimer(hDlg,1);
				EndJpegConnection();
				EndDialog(hDlg, LOWORD(wParam));
				break;
			case IDC_RADIO_ON:
				pCurCam->genHttpIpPrefix (ioCommand);
				_tcscat(ioCommand, _T("axis-cgi/io/output.cgi?action=1:\\") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ioCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;
			case IDC_RADIO_OFF:
				pCurCam->genHttpIpPrefix (ioCommand);
				_tcscat(ioCommand, _T("axis-cgi/io/output.cgi?action=1:/") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent", INTERNET_OPEN_TYPE_DIRECT,NULL,NULL, 0);
				::InternetOpenUrl(hHttpOpenIO, ioCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;
			}
			break;
	}
    return FALSE;
}

LRESULT CALLBACK DlgProc2400(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	HDC hdc;
	PAINTSTRUCT ps;
	DWORD wmId;
	HWND hItem;
	HINTERNET hHttpOpenIO;
	TCHAR ptzCommand[1024];
	LPDRAWITEMSTRUCT pdis;

	switch (message)
	{
		case WM_LBUTTONDOWN:
			Download_flag = 1;
			break;
		case WM_INITDIALOG:
			// Create a Done button and size it.  
			shidi.dwMask = SHIDIM_FLAGS;
			shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
			shidi.hDlg = hDlg;
			SHInitDialog(&shidi);

			if(StartJpegConnection()==FALSE)
			{
				::KillTimer(hDlg,1);
				TCHAR tempStr[1024];
				wsprintf(tempStr, _T("The camera URL path is %s. \r\nPlease check its connection!"), pCurCam->Path );
				::MessageBox (hDlg, tempStr, _T("Disconnected Camera"), MB_OK | MB_ICONEXCLAMATION ) ;
				EndJpegConnection();
				EndDialog(hDlg, IDOK);
			}

			::SetTimer(hDlg, 1, TIMER_INTERVAL, NULL);

			Download_flag = 1;

			hItem = ::GetDlgItem (hDlg, IDC_STATIC_2400);
			::SetWindowText (hItem, pCurCam->Name );

			if(pCurCam->PTZ == 0 )
			{
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_UP);			::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_DOWN);		::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_LEFT);		::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_RIGHT);		::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_ZOOMIN);		::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_ZOOMOUT);	::ShowWindow (hItem, SW_HIDE);
				hItem = ::GetDlgItem (hDlg, IDC_BUTTON_HOME);	::ShowWindow (hItem, SW_HIDE);
			}
			return TRUE; 
		case WM_PAINT:
			hdc = BeginPaint(hDlg, &ps);

			if(pCurCam->PTZ ==0)	   //NO PTZ
				ShowDlgBkGnd(hdc, _T("\\windows\\OtherDlgBG.bmp"));
			else 
				ShowDlgBkGnd(hdc, _T("\\windows\\2400DlgBG.bmp"));
			
			EndPaint(hDlg, &ps);
			break; 


///////////////////////////////////////////
			case WM_DRAWITEM:

			pdis = (LPDRAWITEMSTRUCT)lParam ;
				
			switch(pdis->CtlID)
			{
			case IDC_BUTTON_UP:

				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_up.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_up.bmp"));
			break;
			case IDC_BUTTON_DOWN:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_down.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_down.bmp"));
			break;
			case IDC_BUTTON_LEFT:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_left.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_left.bmp"));
			break;
			case IDC_BUTTON_RIGHT:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_right.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_right.bmp"));
			break;

			case IDC_BUTTON_HOME:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_home.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_home.bmp"));
			break;

			case IDC_BUTTON_ZOOMIN:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_zoomin.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_zoomin.bmp"));
			break;
			case IDC_BUTTON_ZOOMOUT:
				if(pdis->itemState & ODS_SELECTED)  //clicked
					::FnDrawBmp(pdis->hDC,_T("\\windows\\active_zoomout.bmp"));
				else
					::FnDrawBmp(pdis->hDC,_T("\\windows\\inactive_zoomout.bmp"));
			break;
			}
			break;
///////////////////////////////////////////////////


		case WM_TIMER:
			VerifyTimeoutUse();
			if( GPRS_flag ==0 ) 	ReadJpeg( );
			else if( Download_flag ==1)		
			{
				ReadJpeg( );
				Download_flag =0;
			}

			DisplayJpeg(hDlg);
			break;
		case WM_COMMAND:
			wmId = LOWORD(wParam);
			switch (wmId)
			{
			case IDOK:
				::KillTimer(hDlg,1);
				EndJpegConnection();
				EndDialog(hDlg, LOWORD(wParam));
				break;
			case IDC_BUTTON_UP:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&move=up") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;

			case IDC_BUTTON_DOWN:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&move=down") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;

			case IDC_BUTTON_LEFT:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&move=left") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;

			case IDC_BUTTON_RIGHT:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&move=right") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;

			case IDC_BUTTON_ZOOMIN:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&zoomrel=tele") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;

			case IDC_BUTTON_ZOOMOUT:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&zoomrel=wide") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;


			case IDC_BUTTON_HOME:
				pCurCam->genHttpIpPrefix (ptzCommand);
				_tcscat(ptzCommand, _T("axis-cgi/com/ptz.cgi?camera=1&move=home") );

				hHttpOpenIO=::InternetOpen(L"HttpIOAgent",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
				::InternetOpenUrl(hHttpOpenIO, ptzCommand, NULL, NULL, INTERNET_FLAG_RELOAD, 0);
				::InternetCloseHandle(hHttpOpenIO);
				break;
			}
			break;
	}
    return FALSE;
}

LRESULT CALLBACK DlgProcOther(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	HDC hdc;
	PAINTSTRUCT ps;
	DWORD wmId;
	HWND hItem;

	switch (message)
	{
		case WM_LBUTTONDOWN:
			Download_flag = 1;
			break;
		case WM_INITDIALOG:
			// Create a Done button and size it.  
			shidi.dwMask = SHIDIM_FLAGS;
			shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
			shidi.hDlg = hDlg;
			SHInitDialog(&shidi);

			if(StartJpegConnection()==FALSE)
			{
				::KillTimer(hDlg,1);
				TCHAR tempStr[1024];
				wsprintf(tempStr, _T("The camera URL path is %s. \r\nPlease check its connection!"), pCurCam->Path );
				::MessageBox (hDlg, tempStr, _T("Disconnected Camera"), MB_OK | MB_ICONEXCLAMATION ) ;
				EndJpegConnection();
				EndDialog(hDlg, IDOK);
			}

			::SetTimer(hDlg, 1, TIMER_INTERVAL, NULL);

			Download_flag = 1;

			hItem = ::GetDlgItem (hDlg, IDC_STATIC_OTHER);
			::SetWindowText (hItem, pCurCam->Name );

			return TRUE; 
		case WM_PAINT:
			hdc = BeginPaint(hDlg, &ps);
			ShowDlgBkGnd(hdc, _T("\\windows\\OtherDlgBG.bmp"));
			EndPaint(hDlg, &ps);
			break; 
		case WM_TIMER:
			VerifyTimeoutUse();
			if( GPRS_flag ==0 ) 	ReadJpeg( );
			else if( Download_flag ==1)		
			{
				ReadJpeg( );
				Download_flag =0;
			}

			DisplayJpeg(hDlg);
			break;
		case WM_COMMAND:
			wmId = LOWORD(wParam);
			switch (wmId)
			{
			case IDOK:
				::KillTimer(hDlg,1);
				EndJpegConnection();
				EndDialog(hDlg, LOWORD(wParam));
				break;
			}
			break;
	}
    return FALSE;
}

HWND CreateRpCommandBar(HWND hwnd)
{
	SHMENUBARINFO mbi;

	memset(&mbi, 0, sizeof(SHMENUBARINFO));
	mbi.cbSize     = sizeof(SHMENUBARINFO);
	mbi.hwndParent = hwnd;
	mbi.nToolBarId = IDM_MENU;
	mbi.hInstRes   = hInst;
	mbi.nBmpId     = 0;
	mbi.cBmpImages = 0;

	if (!SHCreateMenuBar(&mbi)) 
		return NULL;

	return mbi.hwndMB;
}

// Mesage handler for the About box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	HDC hdc;
	PAINTSTRUCT ps;

	switch (message)
	{
		case WM_INITDIALOG:
			// Create a Done button and size it.  
			shidi.dwMask = SHIDIM_FLAGS;
			 shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
			shidi.hDlg = hDlg;
			SHInitDialog(&shidi);
			::sndPlaySound(_T("\\windows\\HelpSound.wav"),SND_ASYNC);
			return TRUE; 

		case WM_PAINT:
			hdc = BeginPaint(hDlg, &ps);
			ShowBkGnd(hdc, _T("\\windows\\AboutDlgBG.bmp"));
			EndPaint(hDlg, &ps);
			break;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK) {
				::sndPlaySound(NULL,SND_ASYNC);
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

void ShowBkGnd(HDC hdc, TCHAR *filename)
{
	HBITMAP hBitmap;

	hBitmap = SHLoadDIBitmap(filename);
	HDC	hMemDC = CreateCompatibleDC(hdc);
	SelectObject(hMemDC, hBitmap);

	BITMAP bmp;
	GetObject(hBitmap, sizeof(BITMAP), &bmp);

	::StretchBlt(hdc,0,0,240,270,hMemDC,0,0,bmp.bmWidth ,bmp.bmHeight,SRCCOPY);
	DeleteDC(hMemDC);
	DeleteObject(hBitmap);
}


void ShowDlgBkGnd(HDC hdc, TCHAR *filename)
{
	HBITMAP hBitmap;

	hBitmap = SHLoadDIBitmap(filename);
	HDC	hMemDC = CreateCompatibleDC(hdc);
	SelectObject(hMemDC, hBitmap);

	BITMAP bmp;
	GetObject(hBitmap, sizeof(BITMAP), &bmp);

	::StretchBlt(hdc,0,200,238,67,hMemDC,0,0,bmp.bmWidth ,bmp.bmHeight,SRCCOPY);
	DeleteDC(hMemDC);
	DeleteObject(hBitmap);
}


LRESULT CALLBACK DlgProcCameraConfig(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	SHINITDLGINFO shidi;
	DWORD wmId;
	HWND hItem;
	int idx;
	TCHAR thePath[255];
	
	static CCamConfigDlg theDlg;

	switch (message)
	{
	case WM_INITDIALOG:
		// Create a Done button and size it.  
		shidi.dwMask = SHIDIM_FLAGS;
		 shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN;
		shidi.hDlg = hDlg;
		SHInitDialog(&shidi);

		theDlg.Set (hDlg, &allCam);
		theDlg.InitListbox (IDC_LIST_CAMERAS);
		hItem = ::GetDlgItem (hDlg, IDC_COMBO_TYPE);
		::SendMessage (hItem, CB_ADDSTRING, (WPARAM)0, (LPARAM)_T("2100") );
		::SendMessage (hItem, CB_ADDSTRING, (WPARAM)0, (LPARAM)_T("2120") );
		::SendMessage (hItem, CB_ADDSTRING, (WPARAM)0, (LPARAM)_T("2400") );
		::SendMessage (hItem, CB_ADDSTRING, (WPARAM)0, (LPARAM)_T("Other") );
		::SendMessage (hItem, CB_SETCURSEL, (WPARAM)0, (LPARAM)0 );

		return TRUE; 

	case WM_COMMAND:
		wmId = LOWORD(wParam);
		switch (wmId)
		{
		case IDC_BUTTON_BACKUP:
			if(::MessageBox (hDlg, _T("You plan to backup your camera configuration. Are you sure?"), _T("Congrulation"), MB_YESNO | MB_ICONQUESTION) == IDNO)	break;
			theDlg.BackupMe ();
			break;
		case IDC_BUTTON_RESTORE:
			if(::MessageBox (hDlg, _T("You plan to restore your camera configuration. Are you sure?"), _T("Congrulation"), MB_YESNO | MB_ICONQUESTION) == IDNO)	break;
			theDlg.RestoreMe ();
			theDlg.ClearListbox (IDC_LIST_CAMERAS); 
			theDlg.InitListbox (IDC_LIST_CAMERAS);
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_NAME);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);
			::SendMessage (hItem, WM_SETTEXT, (WPARAM)0, (LPARAM)_T("") );
			break;
		case IDOK:
			EndDialog(hDlg, LOWORD(wParam));
			return TRUE;
		case IDC_BUTTON_ADD:
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_NAME);			::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)theDlg.Name );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PATH);			::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)theDlg.Path  );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_USERNAME);		::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)theDlg.Username );
			hItem = ::GetDlgItem (hDlg, IDC_EDIT_PASSWORD);		::SendMessage (hItem, WM_GETTEXT, (WPARAM)255, (LPARAM)theDlg.Password );
			
			Trim(theDlg.Name , L' ');
			Trim(theDlg.Path , L' ');
			if(_tcslen(theDlg.Name )<=0)	break;
			if(_tcslen(theDlg.Path )<=7)	break;

			if(_tcslen(theDlg.Name ) > 10)	
			{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -