📄 errordlg.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 + -