📄 new.cpp
字号:
// New.cpp : implementation file
//
#include "stdafx.h"
#include "WinCEJob.h"
#include "New.h"
#include "wincejobdlg.h"
#include "rtext.h"
#include "inireader.h"
#include "search.h"
#include "movefile.h"
#include "rename.h"
#include "folder.h"
#include "fileloader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNew dialog
extern int m_global;
CNew::CNew(CWnd* pParent /*=NULL*/)
: CDialog(CNew::IDD, pParent)
{
//{{AFX_DATA_INIT(CNew)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CNew::CNew(CWinCEJobDlg *m)
{
m_wince = m;
}
void CNew::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNew)
DDX_Control(pDX, IDC_LIST1, m_listctrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNew, CDialog)
//{{AFX_MSG_MAP(CNew)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_COMMAND(ID_DELETE, OnDelete)
ON_COMMAND(ID_RENAME, OnRename)
ON_COMMAND(ID_INFORMATION, OnInformation)
ON_COMMAND(ID_FAVORITE1, OnFavorite1)
ON_COMMAND(ID_MENUITEM32788, OnMenuitem32788)
ON_COMMAND(ID_MENUITEM32795, OnMenuitem32795)
ON_COMMAND(ID_MENUITEM32796, OnMenuitem32796)
ON_COMMAND(ID_EXIT1, OnExit1)
ON_COMMAND(ID_SEARCH, OnSearch)
ON_COMMAND(ID_MOVEFILE, OnMovefile)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNew message handlers
BOOL CNew::OnInitDialog()
{
CDialog::OnInitDialog();
m_listctrl.SetBkColor(COLORREF(RGB(251,251,249)));
m_listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT);//|LVS_EX_GRIDLINES);
//设置表头格式为Account/Name/Date
m_listctrl.SetHeadings(_T(",20;选项,60"));
//宽度设置
m_listctrl.SetColumnWidth(0,20);
m_listctrl.SetColumnWidth(1,150);
SHMENUBARINFO mbi;
ZeroMemory(&mbi, sizeof(SHMENUBARINFO));
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = this->m_hWnd;
mbi.nToolBarId = IDR_MENUBAR2;
mbi.hInstRes = AfxGetInstanceHandle();
if(!SHCreateMenuBar(&mbi))
{
// Couldn't create the menu bar. Fail creation of the window.
MessageBox(L"Couldn't create the menu bar");
}
m_close = 1;
m_showtype = 1;
ShowFile("", 0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//****************************************************************
//函数名: ShowFile(CString str, int m_i)
//参数: str:文件夹 m_i用于区别是往下打开子目录还是返回
//功能: 实现资源管理、文件管理
//作者: 杨淑华
//实现日期: 05-3-14
/****************************************************************/
void CNew::ShowFile(CString str, int m_i)
{
CString total;
if(str == L"")
{
switch(m_global)
{
case 0:
m_file = L"Windows\\WinCEReader\\WinCEReader";
m_showtype = 0;
break;
case 1:
m_file = L"Windows\\WinCEReader\\Update";
m_showtype = 0;
break;
case 2:
m_file = L"Windows\\WinCEReader\\Sort";
m_showtype = 0;
break;
case 3:
m_file = L"My Documents";
break;
case 4:
m_file = L"";
break;
default:
break;
}
}
if(str == L"")
{
if(m_file == L"")
{
total = L"*";
}
else
total.Format(L"\\%s\\%s", m_file, L"*");
}
else
{
if(str == m_rtn && m_i == 1)
{
if(m_file == L"")
{
total = L"*";
}
else
total.Format(L"\\%s\\%s", m_file, L"*");
}
else
{
m_rtn = str;
if(m_file == L"")
{
total = str;
}
else
{
total.Format(L"%s\\%s", m_file, str);
}
m_file = total;
total.Format(L"\\%s\\%s", m_file, L"*");
}
}
WIN32_FIND_DATA wfd;
int items = 1;
TCHAR listItem[2];
_itow(items, listItem, 10);
HANDLE hand = FindFirstFile(total, &wfd);
if(hand == INVALID_HANDLE_VALUE )
{
CString lpFile;
lpFile = total.Left(total.GetLength() - 2);
SHELLEXECUTEINFO ShellInfo;
memset(&ShellInfo, 0, sizeof(ShellInfo));
ShellInfo.cbSize= sizeof(ShellInfo);
ShellInfo.hwnd= this->m_hWnd;
ShellInfo.lpVerb= _T("open");
ShellInfo.lpFile= lpFile;//_T("\\MoneyAnyWhere.exe");
ShellInfo.nShow= SW_SHOWNORMAL;
ShellInfo.fMask= SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI;
if(::ShellExecuteEx(&ShellInfo) == 0)
{
// MessageBox(L"不是可执行文件!");
}
if(m_listctrl.DeleteAllItems() == 0)
{
MessageBox(L"sorry,delete item failed!");
return;
}
return ;
}
if(m_listctrl.DeleteAllItems() == 0)
{
MessageBox(L"sorry,delete item failed!");
return;
}
if(m_showtype == 0)
{
m_listctrl.AddItem(listItem, wfd.cFileName);
items++;
}
else if(m_showtype == 1 && wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
m_listctrl.AddItem(listItem, wfd.cFileName);
items++;
}
while(FindNextFile(hand, &wfd))
{
if(m_showtype == 0)
{
_itow(items, listItem, 10);
items++;
m_listctrl.AddItem(listItem,wfd.cFileName);
}
else if(m_showtype == 1 && wfd.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
_itow(items, listItem, 10);
items++;
m_listctrl.AddItem(listItem,wfd.cFileName);
}
}
CloseHandle(hand);
}
//****************************************************************
//函数名: OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
//参数:
//功能: 双击List项时,实现打开子目录
//作者: 杨淑华
//实现日期: 05-3-14
/****************************************************************/
void CNew::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
int nItem;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
CString str = m_listctrl.GetItemText(nItem, 1);
CIniReader Reader(str);
Reader.Probe();
if(str.Right(3)!=L"txt" && str.Right(3) !=L"ini"&& str.Right(3) !=L"INI" && str.Right(3) !=L"EXE" && str.Right(3) !=L"exe" && str.Right(3) !=L"PBD" && str.Right(3) !=L"pbd")
{
Reader.m_fileattr = 1;
}
if(Reader.m_fileattr == 0)
{
// m_close--;
if(Reader.Load() == 1)
{
if(str.Right(3) ==L"PBD" || str.Right(3) ==L"pbd")
{
FileLoader fl(str);
CRText ct;
ct.m_openfile = str;
ct.m_filetext = fl.m_filecotent;
for(int k=0; k<fl.m_charpternum; k++)
{
ct.m_chapternum = fl.m_charpternum;
ct.m_chapterline[k] = fl.m_chapterline[k];
}
ct.DoModal();
}
else
{
CRText ct;
ct.m_openfile = str;
ct.m_filetext = Reader.m_Buffer;
ct.DoModal();
}
}
else
{
MessageBox(L"指定文件不可读!");
}
return ;
}
m_close++;
ShowFile(str, 0);
*pResult = 0;
}
void CNew::OnOK()
{
CDialog::OnOK();
}
void CNew::OnButton1()
{
m_file.GetLength();
m_file = m_file.Left(m_file.GetLength() - m_rtn.GetLength()-1);
m_close--;
if(m_close == 0)
CDialog::OnOK();
ShowFile(m_rtn, 1);
/*
CRText ct;
ct.DoModal();*/
}
void CNew::OnDelete()
{
if(CheckSelect())
{
int nItem;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
CString str = m_listctrl.GetItemText(nItem, 1);
CString delfile;
if(m_file == L"")
{
delfile.Format(L"\\%s", str);
}
else
{
delfile.Format(L"\\%s\\%s", m_file, str);
}
if(DeleteFile(delfile))
{
MessageBox(L"delete successed!!");
}
else
{
MessageBox(L"delete failed!!");
}
}
else
MessageBox(L"请选择操作项!");
}
void CNew::OnRename()
{
if(CheckSelect())
{
int nItem;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
CString str = m_listctrl.GetItemText(nItem, 1);
CRename cr;
cr.m_folder = m_file;
cr.m_filename = str;
cr.DoModal();
}
else
MessageBox(L"请选择操作项!");
}
void CNew::OnInformation()
{
if(CheckSelect())
{
}
else
MessageBox(L"请选择操作项!");
}
void CNew::OnFavorite1()
{
if(CheckSelect())
{
int nItem;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
CString str = m_listctrl.GetItemText(nItem, 1);
CMoveFile mf;
mf.m_folder = this->m_file;
mf.m_filename = str;
mf.DoModal();
}
else
MessageBox(L"请选择操作项!");
}
void CNew::OnMenuitem32788()
{
if(CheckSelect())
{
}
else
MessageBox(L"请选择操作项!");
}
//****************************************************************
//函数名: CheckSelect
//参数:
//功能: 检查是否选了项
//作者: 杨淑华
//实现日期: 05-3-14
/****************************************************************/
BOOL CNew::CheckSelect()
{
int nItem = -1;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
if(nItem == -1)
{
return false;
}
return true;
}
void CNew::OnMenuitem32795()
{
m_showtype = 1;
//ID_MENUITEM32795
//IDR_MENUBAR2
// CheckMenuItem(tGetSafeHmenu(),ID_MENUITEM32795, 1);
// CheckMenuItem(ID_MENUITEM32796, 0);
ShowFile(L"", 0);
}
void CNew::OnMenuitem32796()
{
m_showtype = 0;
// CheckMenuItem(ID_MENUITEM32795, 0);
// CheckMenuItem(ID_MENUITEM32796, 1);
ShowFile(L"", 0);
}
void CNew::OnExit1()
{
CDialog::OnOK();
}
void CNew::OnSearch()
{
CSearch csearch;
csearch.DoModal();
}
extern CString movefilename;
void CNew::OnMovefile()
{
if(CheckSelect())
{
int nItem;
POSITION pos = m_listctrl.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!\n");
else
{
while (pos)
{
nItem = m_listctrl.GetNextSelectedItem(pos);
}
}
CString str = m_listctrl.GetItemText(nItem, 1);
CFolder cf;
cf.DoModal();
CString oldfile;
if(m_file == L"")
{
oldfile.Format(L"\\%s", str);
}
else
{
oldfile.Format(L"\\%s\\%s", m_file, str);
}
MoveFile(oldfile, movefilename);
}
else
MessageBox(L"请选择操作项!");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -