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

📄 gpsdlg.cpp

📁 EVC开发的手持导航的用户操作界面
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		dc.BitBlt ( m_rect[3].TopLeft().x, m_rect[3].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	//................................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 4 )
	{
	pBitmap ->LoadBitmap ( IDB_TOOL_B ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
	
	//将图片COPY到指定的像素位置
	dc.BitBlt ( m_rect[4].TopLeft().x, m_rect[4].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		
		pBitmap ->LoadBitmap ( IDB_TOOL_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[4].TopLeft().x, m_rect[4].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	
	//................................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 5 )
	{
	pBitmap ->LoadBitmap ( IDB_SET_B ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
	
	//将图片COPY到指定的像素位置
	dc.BitBlt ( m_rect[5].TopLeft().x, m_rect[5].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		
		pBitmap ->LoadBitmap ( IDB_SET_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[5].TopLeft().x, m_rect[5].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	memDC.SelectObject ( pOldBitmap ) ;
	//释放bitmap对象内存
	delete pBitmap ;
	

	///////////
	//设LOGO
	pBitmap = new CBitmap ;
	pBitmap ->LoadBitmap ( IDB_LOGO ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
	//将图片COPY到指定的像素位置
	dc.BitBlt ( logo.TopLeft().x, logo.TopLeft().y, 131, 33, &memDC, 0, 0, SRCCOPY ) ;
	
	memDC.SelectObject ( pOldBitmap ) ;
	delete pBitmap;

	//////////////////////
	memDC.DeleteDC ()  ;

	//dc.ExtTextOut(120,30,ETO_CLIPPED,CRect(19,43,63,93),L"asf",NULL);
	
}

void CGPSDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	m_prePick = m_currentPick ;

	for ( int i = 0 ; i < 6 ; i ++ ) 
	{		
		if (  m_rect[i].PtInRect (point)   )
		{									
		
			{	
				
				CDC* pDC = GetDC () ;
				CDC  memDC ;
				memDC.CreateCompatibleDC ( pDC ) ;
				
				CBitmap bmp ;
				
				switch ( m_prePick )
				{
				case 0:
					{//白
						bmp.LoadBitmap ( IDB_GPS_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;						
						
						break ;
					}
				case 1:
					{
						bmp.LoadBitmap ( IDB_MP3_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;
						break ;
					}
				case 2:
					{
						bmp.LoadBitmap ( IDB_MP4_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;
						break ;
					}
				case 3:
					{
						bmp.LoadBitmap ( IDB_PICTURE_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;
						break ;
					}	
				case 4:
					{
						bmp.LoadBitmap ( IDB_TOOL_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;
						break ;
					}		
				case 5:
					{
						bmp.LoadBitmap ( IDB_SET_W ) ;
						
						CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
						
						pDC->BitBlt ( m_rect[m_prePick].TopLeft().x, m_rect[m_prePick].TopLeft().y, m_rect[m_prePick].Width(), 
							m_rect[m_prePick].Height(), &memDC, 0, 0, SRCCOPY ) ;
						
						memDC.SelectObject ( pOldBitmap ) ;
						break ;
					}		
					
				
				}
				
				CBitmap   bmp1 ;
				switch ( i )
				{
				case 0:
					{			
						//load the bitmap	
						//黑
						bmp1.LoadBitmap ( IDB_GPS_B ) ;
						
						CBitmap* 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 ) ;
						
						break ;
					}
				case 1:			
					{				
						//load the bitmap
						
						bmp1.LoadBitmap ( IDB_MP3_B ) ;
						
						CBitmap* 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 ) ;
						
						break ;
					}
				case 2:
					{							
						//load the bitmap
						
						bmp1.LoadBitmap ( IDB_MP4_B ) ;
						
						CBitmap* 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 ) ;
						
						break ;
					}
				case 3:
					{
						//load the bitmap
						
						bmp1.LoadBitmap ( IDB_PICTURE_B ) ;
						
						CBitmap* 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 ) ;
						break ;
					}
					case 4:
					{
						//load the bitmap
						
						bmp1.LoadBitmap ( IDB_TOOL_B ) ;
						
						CBitmap* 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 ) ;
						break ;
					}
					case 5:
					{
						//load the bitmap
						
						bmp1.LoadBitmap ( IDB_SET_B ) ;
						
						CBitmap* 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 ) ;
						break ;
					}
					
				
				}
				
				memDC.DeleteDC () ;
				ReleaseDC ( pDC ) ;
				
				m_currentPick = i ;				
			}	

		}
	}
}

void CGPSDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{


	
	//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;
	//将所有图片变白	
	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_W,5);
	

	m_bIsExecute = FALSE ;
	for ( int i = 0 ; i < 6 ; i ++ ) 
	{		
		if (  m_rect[i].PtInRect (point)   )
		{
			if ( m_currentPick == i)
			{
				m_bIsExecute =TRUE ;
				switch (i)
				{
				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 ;
				}
			}
		}
		
	}

}

void CGPSDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	

	m_prePick=m_currentPick ;
			
	if ( nChar == VK_UP|| nChar == VK_LEFT )
		{
			switch (m_prePick)
					{
					case 0:
						//GPS黑别的白
						CopyBMP(IDB_GPS_B,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						m_currentPick = 0 ;
						break ;
					case 1:
						//mp3黑别的白
						CopyBMP(IDB_GPS_B,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_W,2);
						CopyBMP(IDB_PICTURE_W,3);
						CopyBMP(IDB_TOOL_W,4);
						CopyBMP(IDB_SET_W,5);
						
						m_currentPick = 0 ;
						break ;
					case 2:
						//mp4黑别的白
						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 3:
						//图黑
						CopyBMP(IDB_GPS_W,0);
						CopyBMP(IDB_MP3_W,1);
						CopyBMP(IDB_MP4_B,2);

⌨️ 快捷键说明

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