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

📄 airguard_c.cpp

📁 用vc编写的视频采集端口编成
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	switch (wMessage)
	{
//		case WM_CREATE:
//			break;

		case WM_LBUTTONDBLCLK:
			
			if(g_mySysState.bIsAmplified_JIMU){
				g_mySysState.bIsAmplified_JIMU = 0;
				MoveWindow(hWnd, 0, 0, 320, 240, 1);
			}
			else{
				g_mySysState.bIsAmplified_JIMU = 1;
				MoveWindow(hWnd, 0, 0, 640, 480, 1);
			}
			break;

		case WM_PAINT:
			hDc = BeginPaint(hWnd, &ps);
			EndPaint( hWnd, &ps);
      		break;

		case WM_SETCURSOR:
				hCursor = LoadCursor(NULL, MAKEINTRESOURCE(IDC_CROSS));
				SetCursor(hCursor);
			break;
		case WM_RBUTTONDOWN:
			xPos = LOWORD(lParam);
			yPos = HIWORD(lParam);  
			hDc = GetDC(hWnd);
			crPointColor = GetPixel(hDc, xPos, yPos);
			ReleaseDC(hWnd, hDc);
			r = LOWORD(crPointColor) & 0x00ff;
			g = (LOWORD(crPointColor) >> 8) & 0x00ff;
			b = HIWORD(crPointColor) & 0x00ff;
			wGrayValue = (r + g + b) / 3;
			wGrayValue = 255 - wGrayValue;
			fBlackness = (float)wGrayValue / 51;
			fBlackness = fBlackness * g_myCamera.m_iIllumination/100;
			sprintf(lpszMessage, "%3.1f", fBlackness);

			SetWindowText(g_hwndEditBlackness, lpszMessage);
			if (fBlackness >= g_myCamera.GetCriticalPoint()){
				if(g_mySysState.bSoundAlarm)
					MessageBeep(MB_ICONEXCLAMATION);

				if (MessageBox(hWnd, "把该信息保存到数据库.\n 你确定吗?", "Message", 
						MB_ICONQUESTION | MB_YESNO) == IDYES){
					rect.left = 0;
					rect.top = 0;
					rect.right = (g_mySysState.bIsAmplified_JIMU) ? 640 : 320;
					rect.bottom = (g_mySysState.bIsAmplified_JIMU) ? 480 : 240;
					hDc = GetDC(hWnd);
					g_myDIB.SaveDIBintoDatebase(hDc, rect, fBlackness, g_myCamera.m_iCurrentChimney, g_myCamera.m_iCurrentCamera);
					ReleaseDC(hWnd, hDc);
				}
			}
			break;

		case WM_DESTROY:
//			PostQuitMessage(0);
			break;
//		default:

//			return DefWindowProc(hWnd, wMessage, wParam, lParam);
    }
	return 0;
}

LRESULT CALLBACK Video_MPEGWndProc(HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam)
{
	static HCURSOR hCursor;
	WORD wTimerID;
	POINT pt;
	switch (wMessage)
	{
		case WM_INITDIALOG:
			pt.x = 0;
			pt.y = 0;
			ClientToScreen(g_hwndVideo, &pt);
			MoveWindow(hWnd, pt.x, pt.y, 640, 480, 1);
			return TRUE;

		case WM_PARENTMOVED:
			pt.x = 0;
			pt.y = 0;
			ClientToScreen(g_hwndVideo, &pt);
			MoveWindow(hWnd, pt.x, pt.y, 640, 480, 1);
			MessageBox(NULL, "Window moved", "message", MB_OK);

			break;
		case WM_CONTEXTMENU:
						
			if (g_mySysState.iOpMode == MANUALMODE){

				MPEG_VideoWindow_OnContextMenu1(hWnd, wParam, lParam);
			}
			break;
		case WM_TIMER:
			wTimerID = wParam;
			switch (wTimerID){
				case TIMER_READYFORRECVVIDEO:
					KillTimer(hWnd, TIMER_READYFORRECVVIDEO);
					MessageBox(hWnd, "Timer received", "message", MB_OK);
					g_myCamera.MPEG_StartRecvShow(g_hwndVideo_MPEG);
					break;
			}

			break;
		case WM_SNAP_OVER:
			//MessageBox(hWnd, "snap over message received", "message", MB_OK);
			switch (g_mySysState.iProcedureToBeContinued){
				case DETECT_ON_TIMER_2:
					MPEG_DetectChimneyOnTimer2();
					break;
				case VDO_ONCONTEXTMENU_2:
					MPEG_VideoWindow_OnContextMenu2();
					break;
				case CREATE_CHIMNEY_TEMPLATE2:
					MPEG_CreateChimneyTemplate2();
				
					break;
			}
			break;
   }
   return 0;
}

// Mesage handler for Up Button Window.
LRESULT CALLBACK UpButtonWndProc(HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam)
{
   static HRGN hWndRgn, hDrawRgn;
   static WORD wButtonState = 0;// 0->not in region; 1->On top; 2->Push down
   static CMyBitmap bmpUpArrowNotOn, bmpUpArrowOn, bmpUpArrowDown;
   POINT pts[4];
   PAINTSTRUCT ps;
   HDC hDc;
   POINT pt;
   LPARAM lMyParam;
   WPARAM wMyParam;

	switch( wMessage)
   {
   	case WM_CREATE:
		pts[0].x = 12;
		pts[0].y = 0;
		pts[1].x = 24;
		pts[1].y = 29;
		pts[2].x = 12;
		pts[2].y = 24;
		pts[3].x = 0;
		pts[3].y = 29;
		
    	hDrawRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
      	hWndRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
        SetWindowRgn( hWnd, hWndRgn, true);

		hDc = GetDC(hWnd);
		bmpUpArrowNotOn.Init(g_hInst, hDc, IDB_BITMAP1);
		bmpUpArrowOn.Init(g_hInst, hDc, IDB_BITMAP2);
		bmpUpArrowDown.Init(g_hInst, hDc,IDB_BITMAP3);
		ReleaseDC(hWnd, hDc);
      	break;
   	case WM_PAINT:
         hDc = BeginPaint( hWnd, &ps);

		if ( wButtonState == 0)
			bmpUpArrowNotOn.Show(hDc, 0, 0);	
			else if( wButtonState == 1)
				bmpUpArrowOn.Show(hDc, 0, 0);
				else bmpUpArrowDown.Show(hDc, 0, 0);
		
         EndPaint( hWnd, &ps);
      	return 0L;
	case WM_LBUTTONDOWN:
		wButtonState = 2;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_UPBUTTON, (WORD)ACK_BN_DOWN);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);
		break;
    case WM_LBUTTONUP:
		wButtonState = 1;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_UPBUTTON, (WORD)ACK_BN_UP);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);
        break;
    case WM_MOUSEMOVE:
    	if ( wButtonState == 0){
          	wButtonState = 1;
            SetTimer( hWnd, 1, 100, NULL);
      		InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow( hWnd);
         }
      	break;
      case 	WM_TIMER:

      	GetCursorPos( &pt);
         ScreenToClient( hWnd, &pt);
         if( !PtInRegion( hDrawRgn, pt.x, pt.y)){
         	wButtonState = 0;
            InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow(hWnd);
            KillTimer( hWnd, 1);
         }
      	break;
      case WM_DESTROY:

      	DeleteObject( hDrawRgn);
      	DeleteObject( hWndRgn);
         break;

   }
   return DefWindowProc( hWnd, wMessage, wParam, lParam);

}

// Mesage handler for Left Button Window.
LRESULT CALLBACK LeftButtonWndProc(HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam)
{
   static HRGN hWndRgn, hDrawRgn;
   static WORD wButtonState = 0;// 0->not in region; 1->On top; 2->Push down
   static CMyBitmap bmpArrowNotOn, bmpArrowOn, bmpArrowDown;
   POINT pts[4];

   PAINTSTRUCT ps;
   HDC hDc;
   POINT pt;
   LPARAM lMyParam;
   WPARAM wMyParam;
	switch( wMessage)
   {
   	case WM_CREATE:
		pts[0].x = 29;
		pts[0].y = 0;
		pts[1].x = 25;
		pts[1].y = 12;
		pts[2].x = 29;
		pts[2].y = 24;
		pts[3].x = 0;
		pts[3].y = 12;
		
    	hDrawRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
      	hWndRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
        SetWindowRgn( hWnd, hWndRgn, true);

		hDc = GetDC(hWnd);
		bmpArrowNotOn.Init(g_hInst, hDc, IDB_BITMAP4);
		bmpArrowOn.Init(g_hInst, hDc, IDB_BITMAP5);
		bmpArrowDown.Init(g_hInst, hDc,IDB_BITMAP6);
		ReleaseDC(hWnd, hDc);
      	break;
   	case WM_PAINT:
         hDc = BeginPaint( hWnd, &ps);

		if ( wButtonState == 0)
			bmpArrowNotOn.Show(hDc, 0, 0);	
			else if( wButtonState == 1)
				bmpArrowOn.Show(hDc, 0, 0);
				else bmpArrowDown.Show(hDc, 0, 0);
		
         EndPaint( hWnd, &ps);
      	return 0L;
	case WM_LBUTTONDOWN:
		wButtonState = 2;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_LEFTBUTTON, (WORD)ACK_BN_DOWN);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);

		break;
    case WM_LBUTTONUP:
		wButtonState = 1;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_LEFTBUTTON, (WORD)ACK_BN_UP);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);

        break;
    case WM_MOUSEMOVE:
    	if ( wButtonState == 0){
          	wButtonState = 1;
            SetTimer( hWnd, 1, 100, NULL);
      		InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow( hWnd);
         }
      	break;
      case 	WM_TIMER:

      	GetCursorPos( &pt);
         ScreenToClient( hWnd, &pt);
         if( !PtInRegion( hDrawRgn, pt.x, pt.y)){
         	wButtonState = 0;
            InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow(hWnd);
            KillTimer( hWnd, 1);
         }
      	break;
      case WM_DESTROY:

      	DeleteObject( hDrawRgn);
      	DeleteObject( hWndRgn);
         break;

   }
   return DefWindowProc( hWnd, wMessage, wParam, lParam);

}


// Mesage handler for Down Button Window.
LRESULT CALLBACK DownButtonWndProc(HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam)
{
   static HRGN hWndRgn, hDrawRgn;
   static WORD wButtonState = 0;// 0->not in region; 1->On top; 2->Push down
   static CMyBitmap bmpArrowNotOn, bmpArrowOn, bmpArrowDown;
   POINT pts[4];

   PAINTSTRUCT ps;
   HDC hDc;
   POINT pt;
   LPARAM lMyParam;
   WPARAM wMyParam;


	switch( wMessage)
   {
   	case WM_CREATE:
		pts[0].x = 0;
		pts[0].y = 0;
		pts[1].x = 12;
		pts[1].y = 5;
		pts[2].x = 24;
		pts[2].y = 0;
		pts[3].x = 12;
		pts[3].y = 29;
		
    	hDrawRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
      	hWndRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
        SetWindowRgn( hWnd, hWndRgn, true);

		hDc = GetDC(hWnd);
		bmpArrowNotOn.Init(g_hInst, hDc, IDB_BITMAP7);
		bmpArrowOn.Init(g_hInst, hDc, IDB_BITMAP8);
		bmpArrowDown.Init(g_hInst, hDc,IDB_BITMAP9);
		ReleaseDC(hWnd, hDc);
      	break;
   	case WM_PAINT:
         hDc = BeginPaint( hWnd, &ps);

		if ( wButtonState == 0)
			bmpArrowNotOn.Show(hDc, 0, 0);	
			else if( wButtonState == 1)
				bmpArrowOn.Show(hDc, 0, 0);
				else bmpArrowDown.Show(hDc, 0, 0);
		
         EndPaint( hWnd, &ps);
      	return 0L;
	case WM_LBUTTONDOWN:
		wButtonState = 2;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_DOWNBUTTON, (WORD)ACK_BN_DOWN);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);

		break;
    case WM_LBUTTONUP:
		wButtonState = 1;
		InvalidateRgn( hWnd, hDrawRgn, true);
        UpdateWindow( hWnd);
		wMyParam = MAKEWPARAM(ID_DOWNBUTTON, (WORD)ACK_BN_UP);
		lMyParam = (LPARAM)hWnd;
      	SendMessage(GetParent(hWnd), WM_ACK, wMyParam, lMyParam);

        break;
    case WM_MOUSEMOVE:
    	if ( wButtonState == 0){
          	wButtonState = 1;
            SetTimer( hWnd, 1, 100, NULL);
      		InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow( hWnd);
         }
      	break;
      case 	WM_TIMER:

      	GetCursorPos( &pt);
         ScreenToClient( hWnd, &pt);
         if( !PtInRegion( hDrawRgn, pt.x, pt.y)){
         	wButtonState = 0;
            InvalidateRgn( hWnd, hDrawRgn, true);
         	UpdateWindow(hWnd);
            KillTimer( hWnd, 1);
         }
      	break;
      case WM_DESTROY:

      	DeleteObject( hDrawRgn);
      	DeleteObject( hWndRgn);
         break;
      
   }
   return DefWindowProc( hWnd, wMessage, wParam, lParam);


}


// Mesage handler for Right Button Window.
LRESULT CALLBACK RightButtonWndProc(HWND hWnd, UINT wMessage, WPARAM wParam, LPARAM lParam)
{
   static HRGN hWndRgn, hDrawRgn;
   static WORD wButtonState = 0;// 0->not in region; 1->On top; 2->Push down
   static CMyBitmap bmpArrowNotOn, bmpArrowOn, bmpArrowDown;
   POINT pts[4];

   PAINTSTRUCT ps;
   HDC hDc;
   POINT pt;
   LPARAM lMyParam;
   WPARAM wMyParam;


	switch( wMessage)
   {
   	case WM_CREATE:
		pts[0].x = 0;
		pts[0].y = 0;
		pts[1].x = 29;
		pts[1].y = 12;
		pts[2].x = 0;
		pts[2].y = 24;
		pts[3].x = 5;
		pts[3].y = 12;
		
    	hDrawRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
      	hWndRgn = CreatePolygonRgn( pts, 4, ALTERNATE);
        SetWindowRgn( hWnd, hWndRgn, true);

		hDc = GetDC(hWnd);
		bmpArrowNotOn.Init(g_hInst, hDc, IDB_BITMAP10);
		bmpArrowOn.Init(g_hInst, hDc, IDB_BITMAP11);
		bmpArrowDown.Init(g_hInst, hDc,IDB_BITMAP12);
		ReleaseDC(hWnd, hDc);
      	break;
   	case WM_PAINT:
         hDc = BeginPaint( hWnd, &ps);

		if ( wButtonState == 0)

⌨️ 快捷键说明

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