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

📄 pic1dlg.cpp

📁 EVC编写的拨号控制程序。采用EVC++编写。可以控制蓝牙模块。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
						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 CPic1Dlg::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: Add your specialized code here and/or call the base class
	//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)))

*/
						if(!(CreateProcess(TEXT("\\C\\LT4\\StartUp\\SmartGuider.exe"),NULL,NULL,	NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL,&info)))
						{
						//	error_dlg.m_strError = "  不能运行请检查SD卡!  ";
							error_dlg.m_strError = "  不能运行请检查地图!  ";
							error_dlg.DoModal();
						}
						
						break ;
				case 1://打开mp3
						

		            	if(!(CreateProcess(TEXT("\\SD Memory\\BetaPlayer\\player.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL, &info)))
/*
				    	if(!(CreateProcess(TEXT("\\SD Memory\\WINCEPLAYER\\PLAYER.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("\\SD Memory\\BetaPlayer\\player.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL, &info)))
					*/
				    	if(!(CreateProcess(TEXT("\\SD Memory\\WINCEPLAYER\\PLAYER.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("\\Windows\\imageviewer.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
						NULL,NULL,NULL, &info)))
						{
					//  	error_dlg.m_strError = "      请检查SD卡!      ";
							error_dlg.m_strError = "      请检查程序!      ";
							error_dlg.DoModal();
						}
	
						break ;
				case 4:			
//						tool_dlg.DoModal();
				    	error_dlg.m_strError = "尚未完成,继续努力^_^ ";
						error_dlg.DoModal();
						break ;
				case 5:		
//						set_dlg.DoModal();
					    error_dlg.m_strError = "尚未完成,继续努力^_^ ";
						error_dlg.DoModal();
						break ;
				default:
						break ;

				}
			}
		}
		
	}
}



void CPic1Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your specialized code here and/or call the base class

	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);
						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);
}



void CPic1Dlg::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 CPic1Dlg::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	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 CPic1Dlg::OnOK()
{
	// TODO: Add your control notification handler code here
	//	int nResponse;



//	CDialog::OnOK();
}




HRESULT CPic1Dlg::OnSuspend()
{

	return 0;
}

⌨️ 快捷键说明

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