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

📄 errordlg.cpp

📁 EVC开发的手持导航的用户操作界面
💻 CPP
字号:
// ErrorDlg.cpp : implementation file
//

#include "stdafx.h"
#include "GPS.h"
#include "ErrorDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CErrorDlg dialog


CErrorDlg::CErrorDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CErrorDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CErrorDlg)
		// NOTE: the ClassWizard will add member initialization here
	m_strError = "error";
	//}}AFX_DATA_INIT
}


void CErrorDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CErrorDlg)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CErrorDlg, CDialog)
	//{{AFX_MSG_MAP(CErrorDlg)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_PAINT()
	ON_WM_ERASEBKGND()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CErrorDlg message handlers

BOOL CErrorDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_Left=88;
	m_Top=76;
	m_Width=144;
	m_Height=88;
	::SetWindowPos(this->GetSafeHwnd(),HWND_TOP,m_Left, m_Top, 
		m_Width, m_Height,SWP_SHOWWINDOW);
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen
	
	m_rect.SetRect(127,1,140,14);
	m_BackScreenBitmap.LoadBitmap(IDB_ERROR_DLG);

	return true;
	// EXCEPTION: OCX Property Pages should return FALSE
}

void CErrorDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
		if (  m_rect.PtInRect (point)   )
		{									
			CDC* pDC = GetDC () ;
			CDC  memDC ;
			memDC.CreateCompatibleDC ( pDC ) ;
			CBitmap bmp ;
			bmp.LoadBitmap ( IDB_ERROR_B ) ;
			CBitmap* pOldBitmap = memDC.SelectObject ( &bmp ) ;
			pDC->BitBlt ( m_rect.TopLeft().x, m_rect.TopLeft().y, m_rect.Width(), 
							m_rect.Height(), &memDC, 0, 0, SRCCOPY ) ;
			memDC.SelectObject ( pOldBitmap ) ;	
			ReleaseDC(pDC);
	}

}

void CErrorDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CDC* pDC = GetDC () ;
	CDC  memDC ;
	memDC.CreateCompatibleDC ( pDC ) ;
	CBitmap bmp,bmp1 ;
	CBitmap* pOldBitmap ;
	bmp1.LoadBitmap ( IDB_ERROR_W) ;
	pOldBitmap = memDC.SelectObject ( &bmp1 ) ;
	pDC->BitBlt ( m_rect.TopLeft().x, m_rect.TopLeft().y, m_rect.Width(), 
	m_rect.Height(), &memDC, 0, 0, SRCCOPY ) ;
	memDC.SelectObject ( pOldBitmap ) ;
	
	memDC.DeleteDC () ;
	ReleaseDC ( pDC ) ;	

	// TODO: Add your message handler code here and/or call default

	if (m_rect.PtInRect (point))
	{									
		CDialog::OnOK();					
	}
}

void CErrorDlg::OnPaint() 
{
	CPaintDC dc(this); 
	

	CDC  memDC ;
	memDC.CreateCompatibleDC ( &dc ) ;
	
	CBitmap*  pBitmap ;		//load all bitmap
	CBitmap*  pOldBitmap ;	//save old bitmap temp
	
	//.............................................................
	//分配bitmap对象内存
	pBitmap = new CBitmap ;
	
	if ( m_currentPick == 0)
	{
	//黑
		pBitmap ->LoadBitmap ( IDB_ERROR_W ) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect.TopLeft().x, m_rect.TopLeft().y, 13, 13, &memDC, 0, 0, SRCCOPY ) ;
	}
	else
	{		//白
		pBitmap ->LoadBitmap ( IDB_ERROR_B) ;
		pOldBitmap = memDC.SelectObject ( pBitmap ) ;
		
		//将图片COPY到指定的像素位置
		dc.BitBlt ( m_rect.TopLeft().x, m_rect.TopLeft().y, 13, 13, &memDC, 0, 0, SRCCOPY ) ;
	}
	
	
	memDC.SelectObject ( pOldBitmap ) ;
	
	//释放bitmap对象内存
	delete pBitmap ;
	memDC.DeleteDC ();

	//显示错误信息
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(0,0,0));

	dc.ExtTextOut(11,44,ETO_CLIPPED,CRect(11,44,141,66),m_strError,NULL);


}

BOOL CErrorDlg::OnEraseBkgnd(CDC* pDC) 
{
	
	 BITMAP bmpInfo;
      m_BackScreenBitmap.GetBitmap(&bmpInfo);

      
      CDC dcMemory;
      dcMemory.CreateCompatibleDC(pDC);


      // Select the bitmap into the in-memory DC
      CBitmap* pOldBitmap = dcMemory.SelectObject(&m_BackScreenBitmap);

      // Find a centerpoint for the bitmap in the client area
      CRect rect;
      GetClientRect(&rect);

     
      pDC->BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 
         0, 0, SRCCOPY);

      dcMemory.SelectObject(pOldBitmap);

	  return true;	
}

⌨️ 快捷键说明

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