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

📄 tooldlg.cpp

📁 EVC开发的手持导航的用户操作界面
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	CDC  memDC ;
	memDC.CreateCompatibleDC ( &dc ) ;
	
	CBitmap*  pBitmap ;		//load all bitmap
	CBitmap*  pOldBitmap ;	//save old bitmap temp
	
	//.............................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if (m_NavRefresh ||  m_currentPick == 0)
	{
	
	//黑
		pBitmap ->LoadBitmap ( IDB_TOOL_CALC_B ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[0].TopLeft().x, m_rect[0].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{	
//		CopyBMP(IDB_TOOL_CALC_W,0,dc);
		//白
		pBitmap ->LoadBitmap ( IDB_TOOL_CALC_W) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[0].TopLeft().x, m_rect[0].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	
	//.............................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 1 )
	{
	pBitmap ->LoadBitmap ( IDB_TOOL_CLOCK_B ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
	
	//将图片COPY到指定的像素位置
	dc.BitBlt ( m_rect[1].TopLeft().x, m_rect[1].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		
		pBitmap ->LoadBitmap ( IDB_TOOL_CLOCK_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[1].TopLeft().x, m_rect[1].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}

	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	
	//...............................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 2 )
	{
	pBitmap ->LoadBitmap ( IDB_TOOL_TAG_B ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
	
	//将图片COPY到指定的像素位置
	dc.BitBlt ( m_rect[2].TopLeft().x, m_rect[2].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		
		pBitmap ->LoadBitmap ( IDB_TOOL_TAG_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect[2].TopLeft().x, m_rect[2].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	
	//................................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 3 )
	{
	pBitmap ->LoadBitmap ( IDB_TOOL_BOOK_B ) ;
	pOldBitmap = memDC.SelectObject ( pBitmap ) ;
	
	//将图片COPY到指定的像素位置
	dc.BitBlt ( m_rect[3].TopLeft().x, m_rect[3].TopLeft().y, 111, 111, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		
		pBitmap ->LoadBitmap ( IDB_TOOL_BOOK_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		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_TEST_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_TEST_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_TOOL_CANCEL_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_TOOL_CANCEL_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 ()  ;
	
}

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

void CToolDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	
	m_prePick=m_currentPick ;
			
	if ( nChar == VK_UP || nChar == VK_LEFT )
		{
			switch (m_prePick)
					{
					case 0:
						//GPS黑别的白
						CopyBMP(IDB_TOOL_CALC_B,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 0 ;
						break ;
					case 1:
						//mp3黑别的白
						CopyBMP(IDB_TOOL_CALC_B,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						
						m_currentPick = 0 ;
						break ;
					case 2:
						//mp4黑别的白
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_B,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);

						m_currentPick = 1 ;
						break ;
					case 3:
						//图黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_B,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 2 ;
						break;
					case 4:
						//工具黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_B,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 3 ;
						break ;
					case 5:
						//设置黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_B,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 4 ;
						break;
					
					}
				}
				
			if ( nChar == VK_DOWN  || nChar == VK_RIGHT)
				{
					switch (m_prePick) 
					{
					case 0:
						//MP3黑别的白
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_B,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 1 ;
						break ;
					case 1:
						//mp4黑别的白
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_B,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						
						m_currentPick = 2 ;
						break ;
					case 2:
						//picture黑别的白
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_B,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);

						m_currentPick = 3 ;
						break ;
					case 3:
						//tool黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_B,4);
						CopyBMP(IDB_TOOL_CANCEL_W,5);
						m_currentPick = 4 ;
						break;
					case 4:
						//set黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_B,5);
						m_currentPick = 5 ;
						break ;
					case 5:
						//设置黑
						CopyBMP(IDB_TOOL_CALC_W,0);
						CopyBMP(IDB_TOOL_CLOCK_W,1);
						CopyBMP(IDB_TOOL_TAG_W,2);
						CopyBMP(IDB_TOOL_BOOK_W,3);
						CopyBMP(IDB_TOOL_TEST_W,4);
						CopyBMP(IDB_TOOL_CANCEL_B,5);
						m_currentPick = 5 ;
						break;
				
					}
				}
				
					
				
	CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CToolDlg::OnOK() 
{
	PROCESS_INFORMATION info;
	CErrorDlg error_dlg;
	switch (m_currentPick)
	{
		case 0:	
			if(!(CreateProcess(TEXT("\\Storage Card\\calculator.exe"),NULL,NULL,NULL,NULL,CREATE_NEW_CONSOLE,
							NULL,NULL,NULL, &info)))
					{
					error_dlg.m_strError = " 请检查SD卡计算器文件! ";
					error_dlg.DoModal();
					}
			break ;
		case 1:
			break ;
		case 2:
			break ;
		case 3:					
			break ;
		case 4:
			break;
		case 5:
			CDialog::OnOK();
			break;
		default:
			break ;
	}
		
}

⌨️ 快捷键说明

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