www.pudn.com > gpsCE080506.rar > SetDlg.cpp


// SetDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "gps.h" 
#include "SetDlg.h" 
#include "PathDlg.h" 
#include "VolDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CSetDlg dialog 
 
typedef  BOOL (WINAPI *_TouchCalibrate)(); 
 
CSetDlg::CSetDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CSetDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CSetDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
	isActiveSave=FALSE; 
	isActiveTouch=FALSE; 
	isActiveVol=FALSE; 
	isActiveRe=FALSE; 
 
} 
 
 
void CSetDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CSetDlg) 
		// NOTE: the ClassWizard will add DDX and DDV calls here 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CSetDlg, CDialog) 
	//{{AFX_MSG_MAP(CSetDlg) 
	ON_WM_PAINT() 
	ON_WM_LBUTTONDOWN() 
	ON_WM_LBUTTONUP() 
	ON_WM_ERASEBKGND() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CSetDlg message handlers 
 
void CSetDlg::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	CBitmap	bitmap; 
    BITMAP  bmp; 
	CDC     memDC; 
    CFont font; 
    CRect rect; 
// -----------------背景-------------------------------------- 
	bitmap.LoadBitmap(IDB_BITMAP1);//IDB_NAV 
	bitmap.GetObject (sizeof(BITMAP),&bmp); 
	memDC.CreateCompatibleDC (&dc); 
	memDC.SelectObject (bitmap); 
	dc.BitBlt (0,0,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY); 
	bitmap.DeleteObject(); 
//-------------------------------------------------------------- 
	CString str4=TEXT("音量");//TEXT("音频"); 
	CString str5=TEXT("触摸屏");//TEXT("触摸屏"); 
	CString str6=TEXT("导航设置");//TEXT("保存"); 
	CString str7=TEXT("设置");//TEXT("地图导航"); 
 
 
	font.CreatePointFont(180,L"黑体"); 
	dc.SelectObject(&font); 
	dc.SetBkMode(TRANSPARENT); 
	dc.SetTextColor(RGB(255,255,255)); 
	dc.DrawText(str7, CRect(140,8,200,40), 0); 
 
	font.CreatePointFont(120,L"宋体"); 
	dc.SelectObject(&font); 
	dc.SetBkMode(TRANSPARENT); 
	dc.SetTextColor(RGB(0,0,0)); 
	dc.DrawText(str4, CRect(55,160,100,180), 0); 
	dc.DrawText(str5, CRect(140,160,190,180), 0); 
	dc.DrawText(str6, CRect(220,160,290,180), 0); 
	font.DeleteObject();	 
 
	bitmap.LoadBitmap(IDB_VOL); 
	bitmap.GetObject (sizeof(BITMAP),&bmp); 
	memDC.CreateCompatibleDC (&dc); 
	memDC.SelectObject (bitmap); 
	dc.BitBlt (42,86,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY); 
	bitmap.DeleteObject();  
	 
	bitmap.LoadBitmap(IDB_CHECK); 
	bitmap.GetObject (sizeof(BITMAP),&bmp); 
	memDC.CreateCompatibleDC (&dc); 
	memDC.SelectObject (bitmap); 
	dc.BitBlt (132,86,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY); 
	bitmap.DeleteObject();  
 
	bitmap.LoadBitmap(IDB_SAVE); 
	bitmap.GetObject (sizeof(BITMAP),&bmp); 
	memDC.CreateCompatibleDC (&dc); 
	memDC.SelectObject (bitmap); 
	dc.BitBlt (222,86,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY); 
	bitmap.DeleteObject();  
 
	bitmap.LoadBitmap(IDB_LASTPAGE); 
	bitmap.GetObject (sizeof(BITMAP),&bmp); 
	memDC.CreateCompatibleDC (&dc); 
	memDC.SelectObject (bitmap); 
	dc.BitBlt (275,3,bmp.bmWidth ,bmp.bmHeight ,&memDC,0,0,SRCCOPY); 
	bitmap.DeleteObject(); 
	// Do not call CDialog::OnPaint() for painting messages 
} 
 
 
 
void CSetDlg::OnLButtonDown(UINT nFlags, CPoint point)  
{ 
	if(PtInRect(CRect(40,80,90,130),point)) 
	{//音量设置 
		isActiveVol=TRUE; 
	} 
	else if(PtInRect(CRect(132,86,218,151),point)) 
	{//触摸屏 
		isActiveTouch=TRUE; 
	} 
	else if(PtInRect(CRect(222,86,287,151),point)) 
	{//保存 
		isActiveSave=TRUE;		 
	} 
	else if(PtInRect(CRect(279,6,313,69),point)) 
	{//返回 
		isActiveRe=TRUE; 
	} 
 
 
	CDialog::OnLButtonDown(nFlags, point); 
} 
 
void CSetDlg::OnLButtonUp(UINT nFlags, CPoint point)  
{ 
	if(isActiveVol==TRUE) 
	{ 
		isActiveVol=FALSE; 
		CVolDlg dlg; 
		dlg.DoModal(); 
	} 
	else if(isActiveTouch==TRUE) 
	{ 
		isActiveTouch=FALSE; 
		HINSTANCE  hinstance = LoadLibrary(_T("coredll.dll"));  
	    if  (hinstance == NULL)  
		{  
			AfxMessageBox (L"instance == NULL");  
			return;  
		}  
		_TouchCalibrate TouchCalibrate = NULL;  
		TouchCalibrate = (_TouchCalibrate)GetProcAddress(hinstance , L"TouchCalibrate");  
		if (TouchCalibrate == NULL)  
		{  
			AfxMessageBox (L"TouchCalibrate == NULL");  
			return;  
		}  
		TouchCalibrate ();  
		FreeLibrary(hinstance ); 
	} 
	else if(isActiveSave==TRUE) 
	{ 
		isActiveSave=FALSE; 
		 
		CPathDlg dlg; 
		dlg.DoModal(); 
	} 
	else if(isActiveRe==TRUE) 
	{//返回 
		isActiveRe=FALSE; 
		CDialog::OnCancel(); 
	} 
 
	CDialog::OnLButtonUp(nFlags, point); 
} 
 
 
BOOL CSetDlg::PreCreateWindow(CREATESTRUCT& cs)  
{ 
	// TODO: Add your specialized code here and/or call the base class 
	if( !CDialog::PreCreateWindow(cs) ) 
	return FALSE; 
    cs.cx = 320; 
    cs.cy = 240; 
    cs.style &= ~WS_MAXIMIZEBOX;//禁止最大化 
    cs.style &= ~WS_THICKFRAME;//禁止调整大小 
 
	return TRUE; 
//	return CDialog::PreCreateWindow(cs); 
} 
 
 
BOOL CSetDlg::OnEraseBkgnd(CDC* pDC)  
{ 
	// TODO: Add your message handler code here and/or call default 
	 
//	return CDialog::OnEraseBkgnd(pDC); 
	return -1; 
}