📄 filemanage.cpp
字号:
// FileManage.cpp : implementation file
//
#include "stdafx.h"
#include "wgl_32.h"
#include "FileManage.h"
#include "tty.h"
#include "recorder.h"
#include "Dialing.h"
#include "Trans.h"
#include <stdio.h>
#include <io.h>
#include <time.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
BOOL ReadDog(void);
CTTY MyTTY;
extern CDialing MMyDialing;
extern CTrans MyTrans;
/////////////////////////////////////////////////////////////////////////////
// CFileManage dialog
CFileManage::CFileManage(CWnd* pParent /*=NULL*/)
: CDialog(CFileManage::IDD, pParent)
{
//{{AFX_DATA_INIT(CFileManage)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_wReturn = -1;
}
void CFileManage::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFileManage)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFileManage, CDialog)
//{{AFX_MSG_MAP(CFileManage)
ON_NOTIFY(NM_DBLCLK, IDC_CITYTREE, OnDblclkCitytree)
ON_NOTIFY(NM_DBLCLK, IDC_FILETREE, OnDblclkFiletree)
ON_NOTIFY(NM_DBLCLK, IDC_RECORDTREE, OnDblclkRecordtree)
ON_NOTIFY(NM_DBLCLK, IDC_STATIONTREE, OnDblclkStationtree)
ON_WM_PAINT()
ON_NOTIFY(TVN_SELCHANGED, IDC_FILETREE, OnSelchangedFiletree)
ON_BN_CLICKED(IDC_COMM, OnComm)
ON_BN_CLICKED(IDC_SHOW, OnShow)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFileManage message handlers
BOOL CFileManage::OnInitDialog()
{
int i=0;
long HFile;
struct _finddata_t c_file;
HTREEITEM HRoot;
TV_INSERTSTRUCT TVInsterStruct;
TV_ITEM TVItem;
CString RootString;
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if (!RootString.LoadString( IDS_ROOTSTRING ))
{
AfxMessageBox("Error Loading String: IDS_ROOTSTRING") ;
RootString = _T("广东省电管局");
}
GetDlgItem(IDC_SELECTION)->GetWindowRect(&m_SelectRect);
ScreenToClient(&m_SelectRect);
m_Directory = ((CWgl_32App *)AfxGetApp())->m_PathStr;
TVInsterStruct.hParent = TVI_ROOT;
TVInsterStruct.hInsertAfter = TVI_FIRST;
memset(&TVItem, 0x00, sizeof(TV_ITEM));
TVItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_CHILDREN;
TVItem.pszText = (char *)LPCTSTR(RootString);
TVItem.cchTextMax = RootString.GetLength();
TVItem.cChildren = 1;
TVItem.lParam = 1L;
TVInsterStruct.item = TVItem;
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->InsertItem((LPTV_INSERTSTRUCT FAR )&TVInsterStruct);
HFile = _findfirst( m_Directory+"*.*", &c_file ) ;
if(HFile==-1)return TRUE;
while(i==0)
{
if(lstrcmp(c_file.name, ".")!=0 && lstrcmp(c_file.name, "..")!=0 && c_file.attrib == _A_SUBDIR)
{
TVInsterStruct.hParent = HRoot;
TVInsterStruct.hInsertAfter = TVI_SORT;
memset(&TVItem, 0x00, sizeof(TV_ITEM));
TVItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_CHILDREN;
TVItem.pszText = c_file.name;
TVItem.cchTextMax = lstrlen(c_file.name);
TVItem.cChildren = 0;
TVItem.lParam = 1L;
TVInsterStruct.item = TVItem;
((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->InsertItem(&TVInsterStruct);
}
i = _findnext( HFile, &c_file ) ;
}
((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->Expand(HRoot, TVE_EXPAND);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFileManage::OnDblclkCitytree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int i=0;
long HFile;
struct _finddata_t c_file;
HTREEITEM SelectedItem;
HTREEITEM HRoot;
TV_INSERTSTRUCT TVInsterStruct;
TV_ITEM TVItem;
SelectedItem = ((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->GetSelectedItem();
if(((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->ItemHasChildren( SelectedItem ))
{*pResult = 0; return; }
m_CityName = ((CTreeCtrl *)GetDlgItem(IDC_CITYTREE))->GetItemText(SelectedItem);
NowDirectory = m_Directory + m_CityName + "\\*.*";
HFile = _findfirst( NowDirectory, &c_file ) ;
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->GetRootItem();
((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->Expand(HRoot,TVE_COLLAPSE);
((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->DeleteAllItems();
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->GetRootItem();
((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->Expand(HRoot,TVE_COLLAPSE);
((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->DeleteAllItems();
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->GetRootItem();
((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->Expand(HRoot,TVE_COLLAPSE);
((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->DeleteAllItems();
((CButton *)GetDlgItem(IDOK))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_COMM))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_SHOW))->EnableWindow(FALSE);
memset(&TVItem, 0x00, sizeof(TV_ITEM));
TVItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_CHILDREN;
TVItem.pszText = m_CityName.GetBuffer(lstrlen(m_CityName));
TVItem.cchTextMax = lstrlen(m_CityName);
TVItem.cChildren = 1;
TVItem.lParam = 1L;
TVInsterStruct.hParent = TVI_ROOT;
TVInsterStruct.hInsertAfter = TVI_FIRST;
TVInsterStruct.item = TVItem;
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->InsertItem(&TVInsterStruct);
m_CityName.ReleaseBuffer();
InvalidateRect(&m_SelectRect);
UpdateWindow();
if(HFile==-1)return ;
while(i==0)
{
if(lstrcmp(c_file.name, ".")!=0 && lstrcmp(c_file.name, "..")!=0 && c_file.attrib == _A_SUBDIR)
{
TVInsterStruct.hParent = HRoot;
TVInsterStruct.hInsertAfter = TVI_SORT;
memset(&TVItem, 0x00, sizeof(TV_ITEM));
TVItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_CHILDREN;
TVItem.pszText = c_file.name;
TVItem.cchTextMax = lstrlen(c_file.name);
TVItem.cChildren = 0;
TVItem.lParam = 1L;
TVInsterStruct.item = TVItem;
((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->InsertItem(&TVInsterStruct);
}
i = _findnext( HFile, &c_file ) ;
}
((CTreeCtrl *)GetDlgItem(IDC_STATIONTREE))->Expand(HRoot, TVE_EXPAND);
*pResult = 0;
}
void CFileManage::OnDblclkFiletree(NMHDR* pNMHDR, LRESULT* pResult)
{
//文件树上双击
HTREEITEM SelectedItem;
((CButton *)GetDlgItem(IDOK))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_COMM))->EnableWindow(FALSE);
SelectedItem = ((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->GetSelectedItem();
if(((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->ItemHasChildren( SelectedItem ))
{ *pResult = 0; return; }
((CButton *)GetDlgItem(IDOK))->EnableWindow(TRUE);
m_FileName = ((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->GetItemText(SelectedItem);
NowDirectory = m_Directory + m_CityName + "\\" + m_StationName + "\\" + m_strRecordID + "\\"+ m_FileName;
InvalidateRect(&m_SelectRect);
UpdateWindow();
*pResult = 0;
m_wReturn = 1;
CDialog::OnOK(); //效果同双击
}
void CFileManage::OnDblclkRecordtree(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
//在录波器树上双击
int i=0;
long HFile;
struct _finddata_t c_file;
HTREEITEM SelectedItem;
HTREEITEM HRoot;
TV_INSERTSTRUCT TVInsterStruct;
TV_ITEM TVItem;
((CButton *)GetDlgItem(IDC_COMM))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDOK))->EnableWindow(FALSE);
((CButton *)GetDlgItem(IDC_SHOW))->EnableWindow(FALSE);
SelectedItem = ((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->GetSelectedItem();
if(((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->ItemHasChildren( SelectedItem ))
{*pResult = 0; return; }
m_strRecordID = ((CTreeCtrl *)GetDlgItem(IDC_RECORDTREE))->GetItemText(SelectedItem);
NowDirectory = m_Directory + m_CityName + "\\" + m_StationName + "\\" + m_strRecordID + "\\*.wgl";
HFile = _findfirst( NowDirectory, &c_file ) ;
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->GetRootItem();
((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->Expand(HRoot,TVE_COLLAPSE);
((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->DeleteAllItems();
((CButton *)GetDlgItem(IDC_COMM))->EnableWindow(TRUE);
memset(&TVItem, 0x00, sizeof(TV_ITEM));
TVItem.mask = TVIF_TEXT|TVIF_PARAM|TVIF_CHILDREN;
TVItem.pszText = m_strRecordID.GetBuffer(lstrlen(m_strRecordID));
TVItem.cchTextMax = lstrlen(m_strRecordID);
TVItem.cChildren = 1;
TVItem.lParam = 1L;
TVInsterStruct.hParent = TVI_ROOT;
TVInsterStruct.hInsertAfter = TVI_FIRST;
TVInsterStruct.item = TVItem;
HRoot = ((CTreeCtrl *)GetDlgItem(IDC_FILETREE))->InsertItem(&TVInsterStruct);
m_strRecordID.ReleaseBuffer();
InvalidateRect(&m_SelectRect);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -