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

📄 pathdlg.cpp

📁 CE导航界面。 CE导航界面。
💻 CPP
字号:
// PathDlg.cpp : implementation file
//

#include "stdafx.h"
#include "gps.h"
#include "PathDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPathDlg dialog


CPathDlg::CPathDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPathDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPathDlg)
	treeNum=0;
	m_path = _T("");
	m_navStart = 0;
	//}}AFX_DATA_INIT

	treeNum=0;
	isActiveRe=0;
}


void CPathDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPathDlg)
	DDX_Control(pDX, IDC_TREE1, m_tree);
	DDX_Text(pDX, IDC_EDIT1, m_path);
	DDX_Check(pDX, IDC_CHECK1, m_navStart);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPathDlg, CDialog)
	//{{AFX_MSG_MAP(CPathDlg)
	ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
	ON_WM_CREATE()
	ON_WM_ERASEBKGND()
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
	ON_WM_PAINT()
	ON_WM_CTLCOLOR()
	ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPathDlg message handlers

BOOL CPathDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	htreemain=m_tree.InsertItem(_T("Storage Card"),NULL,NULL,NULL,TVI_LAST);
	directory="\\Storage Card\\";

		HANDLE  hFind=FindFirstFile(_T("\\Storage Card\\*.*"),&lpFileData);//查找文件夹下的exe文件
		if(hFind!=INVALID_HANDLE_VALUE)
		{
		   do{
				if(lpFileData.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)
				{//查找文件夹  
					htree[treeNum]=m_tree.InsertItem(lpFileData.cFileName,NULL,NULL,htreemain,TVI_LAST);
					treeNum++;

					HANDLE  hFindNext=FindFirstFile(directory+lpFileData.cFileName+_T("\\*.exe"),&lpFileDataNext);
					if(hFindNext!=INVALID_HANDLE_VALUE)
					{
						do{//查找文件夹下面的文件
							m_tree.InsertItem(lpFileDataNext.cFileName,NULL,NULL,htree[treeNum-1],TVI_LAST);
						}
						while(FindNextFile(hFindNext,&lpFileDataNext));
					}			

				}
		   }while(FindNextFile(hFind,&lpFileData));
		}

		hFind=FindFirstFile(_T("\\Storage Card\\*.exe"),&lpFileData);//查找exe文件
		if(hFind!=INVALID_HANDLE_VALUE)
		{
		   do{
				htree[treeNum]=m_tree.InsertItem(lpFileData.cFileName,NULL,NULL,htreemain,TVI_LAST);
				treeNum++;
		   }while(FindNextFile(hFind,&lpFileData));
		}
		

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPathDlg::OnButton1() 
{
	CDialog::OnCancel();	
}

int CPathDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	
	RECT rect;
	rect.left=0;rect.top=0;rect.right=150;rect.bottom=150;
	m_tree.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT|TVS_TRACKSELECT ,rect,this,102);
	
    CFont font;
	font.CreatePointFont(180,L"宋体");
	m_tree.SetFont(&font,TRUE);

	return CDialog::OnCreate(lpCreateStruct);
}

BOOL CPathDlg::OnEraseBkgnd(CDC* pDC) 
{
	//return -1;
	return CDialog::OnEraseBkgnd(pDC);
}

void CPathDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
//	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	HTREEITEM TreeItem=m_tree.GetSelectedItem();
	pathName=m_tree.GetItemText(TreeItem); 

	if(TreeItem==htreemain)//如果是根目录
		pathStr="\\Storage Card";
	else
	{
		if(m_tree.GetParentItem(TreeItem))
		{
			CString parentStr=m_tree.GetItemText(m_tree.GetParentItem(TreeItem));
			if(m_tree.GetParentItem(TreeItem)==htreemain)//如果是根目录下的第一级文件
			{
				pathStr="\\"+parentStr+"\\"+pathName;

			}
			else
			{
				pathStr="\\Storage Card\\"+parentStr+"\\"+pathName;
			}
			
		}
		else
			pathStr=pathName;
	}

	m_path=pathStr;

	UpdateData(false);
}

void CPathDlg::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 Str=TEXT("导航设置");
	font.CreatePointFont(180,L"黑体");
	dc.SelectObject(&font);
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(255,255,255));
	dc.DrawText(Str, CRect(120,8,220,40), 0);

	CString Str2=TEXT("启动时运行导航软件");
	font.CreatePointFont(100,L"宋体");
	dc.SelectObject(&font);
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(RGB(10,0,0));
	dc.DrawText(Str2, CRect(33,207,200,230), 0);

	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();


	dc.DrawText(strTemp, CRect(0,0,320,30), 0);

}

HBRUSH CPathDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	if(pWnd->GetDlgCtrlID()==IDC_CHECK1)
	{
	//	 pDC->SetBkColor(RGB(156,178,205));
		 
		 pDC->SetBkMode(TRANSPARENT);
		 pDC->SetTextColor(RGB(14,66,121));   
	//	 hbr =  CreateSolidBrush(RGB(156,178,205));   
	}
	
	// TODO: Return a different brush if the default is not desired
	return hbr;
}

void CPathDlg::OnCheck1() 
{
	m_navStart=!m_navStart;	
}

void CPathDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	if(PtInRect(CRect(279,6,313,69),point))
	{//返回
		isActiveRe=TRUE;
	}
	
	CDialog::OnLButtonDown(nFlags, point);
}

void CPathDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{
	if(isActiveRe==TRUE)
	{//返回
		isActiveRe=FALSE;
		CString str;
		CFile m_fSaveFile; 
		TCHAR* pFileName = _T("\\Storage Card\\config.ini"); 

		if(m_fSaveFile.Open(pFileName,CFile::modeCreate | CFile::modeReadWrite))
		{
			m_fSaveFile.SeekToBegin(); 
			m_fSaveFile.Write(m_path,m_path.GetLength()*2); 
			m_fSaveFile.Write(",",2);
			str.Format(TEXT("%d"),m_navStart);
			m_fSaveFile.Write(str,str.GetLength()*2);
			m_fSaveFile.Close(); 

			SetFileAttributes(TEXT("\\Storage Card\\config.ini"),FILE_ATTRIBUTE_HIDDEN);
		}
		CDialog::OnCancel();
	}	
	CDialog::OnLButtonUp(nFlags, point);
}

⌨️ 快捷键说明

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