📄 gpsdlg.cpp
字号:
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 + -