📄 cammon.cpp
字号:
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 + -