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

📄 gpsdlg.cpp

📁 EVC开发的手持导航的用户操作界面
💻 CPP
📖 第 1 页 / 共 3 页
字号:
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 2 ;
						break;
					case 4:
						//工具黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_B,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 3 ;
						break ;
					case 5:
						//设置黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_B,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 4 ;
						break;
					
					}
				}
				
				if ( nChar == VK_DOWN || nChar == VK_RIGHT)
				{
					switch (m_prePick) 
					{
					case 0:
						//MP3黑别的白
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_B,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 1 ;
						break ;
					case 1:
						//mp4黑别的白
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_B,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						
						m_currentPick = 2 ;
						break ;
					case 2:
						//picture黑别的白
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_B,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);

						m_currentPick = 3 ;
						break ;
					case 3:
						//tool黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_B,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 4 ;
						break;
					case 4:
						//set黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_B,5);
						m_currentPick = 5 ;
						break ;
					case 5:
						//设置黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_B,5);
						m_currentPick = 5 ;
						break;
				
					}
				}
				
						
				
	CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}

LRESULT CGPSDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::DefWindowProc(message, wParam, lParam);
}

BOOL CGPSDlg::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	 
	return CDialog::PreTranslateMessage(pMsg);
}

void CGPSDlg::CopyBMP(int m_map,int i)
{
		CDC* pDC = GetDC () ;
		CDC  memDC ;
		memDC.CreateCompatibleDC ( pDC ) ;
		CBitmap bmp,bmp1 ;
		CBitmap* pOldBitmap ;
		bmp1.LoadBitmap ( m_map) ;
		pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
		pDC->BitBlt ( m_rect[i].TopLeft().x, m_rect[i].TopLeft().y, m_rect[i].Width(), 
		m_rect[i].Height(), &memDC, 0, 0, SRCCOPY ) ;
		memDC.SelectObject ( pOldBitmap ) ;
		
		memDC.DeleteDC () ;
		ReleaseDC ( pDC ) ;				
}

void CGPSDlg::ShowBattery(char num)
{
	switch(num)
	{
	case 5:
		m_BT4.ShowWindow(SW_SHOW);
		m_BT3.ShowWindow(SW_HIDE);
		m_BT2.ShowWindow(SW_HIDE);
		m_BT1.ShowWindow(SW_HIDE);
		m_BT0.ShowWindow(SW_HIDE);
		break;
	case 4:
	
		m_BT4.ShowWindow(SW_HIDE);
		m_BT3.ShowWindow(SW_SHOW);
		m_BT2.ShowWindow(SW_HIDE);
		m_BT1.ShowWindow(SW_HIDE);
		m_BT0.ShowWindow(SW_HIDE);
		break;
	case 3:
	
		m_BT4.ShowWindow(SW_HIDE);
		m_BT3.ShowWindow(SW_HIDE);
		m_BT2.ShowWindow(SW_SHOW);
		m_BT1.ShowWindow(SW_HIDE);
		m_BT0.ShowWindow(SW_HIDE);
		break;
	case 2:
	
		m_BT4.ShowWindow(SW_HIDE);
		m_BT3.ShowWindow(SW_HIDE);
		m_BT2.ShowWindow(SW_HIDE);
		m_BT1.ShowWindow(SW_SHOW);
		m_BT0.ShowWindow(SW_HIDE);
		break;
	case 1:
	
		m_BT4.ShowWindow(SW_HIDE);
		m_BT3.ShowWindow(SW_HIDE);
		m_BT2.ShowWindow(SW_HIDE);
		m_BT1.ShowWindow(SW_HIDE);
		m_BT0.ShowWindow(SW_SHOW);
		break;
	default:
	
		m_BT4.ShowWindow(SW_HIDE);
		m_BT3.ShowWindow(SW_HIDE);
		m_BT2.ShowWindow(SW_HIDE);
		m_BT1.ShowWindow(SW_HIDE);
		m_BT0.ShowWindow(SW_HIDE);
		break;
	}
}

void CGPSDlg::OnTimer(UINT nIDEvent) 
{
	
	
	UCHAR out;
	BOOL bACIn;

	if(nIDEvent==3)
	{
		DeviceIoControl(hBak,IOCTL_GET_ACSTA,NULL,0,&out,1,NULL,NULL);
		if(out==1)
		{
			//m_staAC.ShowWindow(SW_SHOW);
			bACIn=TRUE;
		}
		else
		{
			//m_staAC.ShowWindow(SW_HIDE);
			bACIn=FALSE;
		}

		DeviceIoControl(hBat,IOCTL_GET_SCALE,NULL,0,&out,1,NULL,NULL);

		//show charg up state
		if((bACIn)&&(out!=5))
		{
			ShowBattery(chargeStau0);
			if(chargeStau0<4)
				chargeStau0++;
			else
			{
				chargeStau0=0;
			}
		}
		else
		{
			ShowBattery(out);
		}

	}
	CDialog::OnTimer(nIDEvent);
	
}
void CGPSDlg::OnOK() 
{

//	int nResponse;

	//GPS
	char sName[100]={0};
	TCHAR wName[100]={0};
	PROCESS_INFORMATION info;
	HANDLE Handle=NULL;

	HANDLE hNavFile;
	char buff[100]={0};
	DWORD LineNum;
	DWORD num;
	int dwSize;
	//**************************************************************//
	
				//if ( nChar == VK_RETURN )
				{
					switch (m_currentPick)
					{
				case 0:
					
						hNavFile=CreateFile(TEXT("\\Storage Card\\Nav.txt"),GENERIC_READ,0,NULL,
						OPEN_EXISTING,0,NULL);
						if(hNavFile==INVALID_HANDLE_VALUE)
						{
							error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
							m_NavRefresh = TRUE ;
							InvalidateRect(&m_rect[0]);
							break;
					
						}
						if(!ReadFile(hNavFile, buff, 2, &num, NULL))
						{
							error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
							CloseHandle(hNavFile);
							m_NavRefresh = TRUE ;
							InvalidateRect(&m_rect[0]);
							break ;
					
						}
						if(num!=2)
						{
							error_dlg.m_strError =  "      请检查SD卡!      ";
							error_dlg.DoModal();
							CloseHandle(hNavFile);
							m_NavRefresh = TRUE ;
							InvalidateRect(&m_rect[0]);
							break;
						
						}
						LineNum=(buff[0]-48)*10+(buff[1]-48);
						
						if(!ReadFile(hNavFile,buff,LineNum,&num,NULL))
						{
							error_dlg.m_strError =  "      请检查SD卡!      ";
							error_dlg.DoModal();
							CloseHandle(hNavFile);
							m_NavRefresh = TRUE ;
							InvalidateRect(&m_rect[0]);
							break;
						//return;
						}
						if(num!=LineNum)
						{
							error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
							CloseHandle(hNavFile);
							m_NavRefresh = TRUE ;
							InvalidateRect(&m_rect[0]);
							break;
					
						}
						CloseHandle(hNavFile);
					
						memcpy(sName,buff,LineNum);
					
						dwSize = MultiByteToWideChar (CP_ACP, 0, sName, -1, NULL, 0);
					
						MultiByteToWideChar (CP_ACP, 0, sName, -1, wName, dwSize);
					
					
						if(!(CreateProcess(wName,NULL,NULL,	NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL,&info)))
						{
							error_dlg.m_strError = " 不能运行,请检查SD卡! ";
							error_dlg.DoModal();
						}
						
						break ;
				case 1://打开mp3
						

						if(!(CreateProcess(TEXT("\\Storage Card\\vmaxplayer\\vmaxplayer.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL, &info)))
						{
							error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
						}
	
						break ;
				case 2://打开mp4
					

						if(!(CreateProcess(TEXT("\\Storage Card\\vmaxplayer\\vmaxplayer.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL, &info)))
						{
							error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
						}
	
						break ;
				case 3:	//打开图片浏览
					
						if(!(CreateProcess(TEXT("\\Storage Card\\VMaxSee\\VmaxSee.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
						NULL,NULL,NULL, &info)))
						{
						error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.DoModal();
						}
	
						break ;
				case 4:			
						tool_dlg.DoModal();
						break ;
				case 5:		
						set_dlg.DoModal();
						break ;
					default:
						break ;
					}
				}
				
}


HRESULT CGPSDlg::OnSuspend()
{
	HWND hWnd;
	HANDLE hWndFile;
	char buff[100]={0};
	DWORD LineNum;
	DWORD num;
	int dwSize;
	char flag;
	
	hWnd=::FindWindow(TEXT("TCPMP_Win"),NULL);

	if(hWnd!=NULL)
	{
		::SendMessage(hWnd,WM_CLOSE,0,0);
	}

	hWndFile=CreateFile(TEXT("\\Storage Card\\NavWnd"),GENERIC_READ,0,NULL,
		OPEN_EXISTING,0,NULL);
	if(hWndFile==INVALID_HANDLE_VALUE)
	{
		CloseHandle(hWndFile);
		//MessageBox(TEXT("Can't open file!"));
		return 0;
	}
	
	if(!ReadFile(hWndFile, buff, 2, &num, NULL))
	{
		//MessageBox(L"Can't Read file");
		CloseHandle(hWndFile);
		return 0;
	}
	if(num!=2)
	{
		//MessageBox(L"File Error!");
		CloseHandle(hWndFile);
		return 0;
	}
	LineNum=(buff[0]-48)*10+(buff[1]-48);

	if(!ReadFile(hWndFile,buff,LineNum,&num,NULL))
	{
		//MessageBox(TEXT("File Error!"));
		//RETAILMSG(1,(TEXT("aaaaaaaaaaaaaaaaaa")));
		CloseHandle(hWndFile);
		return 0;
	}
	if(num!=LineNum)
	{
		//MessageBox(TEXT("File Error!"));
		//RETAILMSG(1,(TEXT("LineNum==%d\r\n"),LineNum));
		//RETAILMSG(1,(TEXT("NUM==%d\r\n"),num));
		CloseHandle(hWndFile);
		return 0;
		//return 0;
	}
		
	if(!ReadFile(hWndFile,&flag,1,&num,NULL))
	{
		//RETAILMSG(1,(TEXT("bbbbbbbbbbbbbbbb")));
		//MessageBox(TEXT("File Error!"));
		CloseHandle(hWndFile);
		return 0;
	}

	if(num!=1)
	{
		//RETAILMSG(1,(TEXT("cccccccccccccccccccc")));
		//MessageBox(TEXT("File Error!"));
		CloseHandle(hWndFile);
		return 0;
	}
	flag-=48;
	//RETAILMSG(1,(TEXT("flag is%d\r\n"),flag));
	CloseHandle(hWndFile);

	char sName[100]={0};
	TCHAR wName[100]={0};

	memcpy(sName,buff,LineNum);
	
	dwSize = MultiByteToWideChar (CP_ACP, 0, sName, -1, NULL, 0);
				
	MultiByteToWideChar (CP_ACP, 0, sName, -1, wName, dwSize);

	if(flag==1)
	{
		hWnd=::FindWindow(wName,NULL);
		//RETAILMSG(1,(TEXT("1111wName is%d\r\n"),wName));
		if(hWnd!=NULL)
		{
			::SendMessage(hWnd,WM_CLOSE,0,0);
		}
	}
	else if(flag==2)
	{
		//RETAILMSG(1,(TEXT("2222wName is%d\r\n"),wName));
		hWnd=::FindWindow(NULL,wName);
		if(hWnd!=NULL)
		{
			::SendMessage(hWnd,WM_CLOSE,0,0);
		}
	}
	else 
		return 0;
	return 0;
}

⌨️ 快捷键说明

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