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