📄 mainfrm.cpp
字号:
bi.pszDisplayName = name;
// bi.lpszTitle="Select folder";
bi.ulFlags = 0;
LPITEMIDLIST idl = SHBrowseForFolder(&bi);
if(idl == NULL)
return 1;
SHGetPathFromIDList(idl, str.GetBuffer(MAX_PATH));
str.ReleaseBuffer();
// m_Path = str;
if(str.GetAt(str.GetLength()-1) == '\\')
//str -= "\\";
str.SetAt(str.GetLength()-1, '\0');
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc))) return 1;
//释放内存
lpMalloc->Free(idl);
lpMalloc->Release();
return 0;
}
void CMainFrame::AddSubDir(HTREEITEM hParent)
{
CString strvalue = "select * from CodeTable where ParentID = ", strdata;
long lvalue = m_wndTree.GetItemData(hParent);
strdata.Format("%ld", lvalue);
strvalue = strvalue + "'" + strdata +"'";
m_DbObject.GetValue(strvalue);
CString str, strCodeName;
long lt, ldir;
_variant_t vname,vtemp;
HTREEITEM ht;
while(!m_DbObject.m_pRecordset->adoEOF)
{
vname = m_DbObject.m_pRecordset->GetCollect("CodeName");
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
str = (LPCTSTR)(_bstr_t)vname;
lt = (long)vtemp;
ht = m_wndTree.InsertItem(str, hParent);
ldir = (long)m_DbObject.m_pRecordset->GetCollect("IsDir");
if(ldir)
{
m_wndTree.SetItemImage(ht, 0, 0);
}
else
m_wndTree.SetMyItemImage(ht, str);
m_wndTree.SetItemData(ht, lt);
m_DbObject.m_pRecordset->MoveNext();
}
}
int CMainFrame::ImportFile()
{
HTREEITEM hItem, hpItem, htemp1, hroot;
CString strPathName,str1,dbstr[6],stemp;
CFileDialog OpenFileDlg(TRUE, _T(""), NULL, OFN_HIDEREADONLY|OFN_EXPLORER|OFN_NOCHANGEDIR, "*.*|*.*||");
if(OpenFileDlg.DoModal() == IDOK)
{
strPathName = OpenFileDlg.GetPathName();
hItem = m_wndTree.GetSelectedItem();
hpItem = m_wndTree.GetParentItem(hItem);
hroot = m_wndTree.GetRootItem();
// if(hItem == NULL)
// hItem = hpItem = hroot;
if(m_SelectFlag == 1)
{
if(SelectDlg.DoModal() == IDOK)
{
str1.Format("%s", OpenFileDlg.GetFileName());
if(m_NewFlag) //新建同级节点
{
if(hpItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hpItem));
htemp1 = m_wndTree.InsertItem(_T(str1), hpItem);
m_wndTree.SetMyItemImage(htemp1, str1);
}
else //新建子节点
{
/*如父节点原来无子节点,则更改父节点状态并修改数据库*/
if((hItem != NULL) && (!m_wndTree.ItemHasChildren(hItem)))
{
m_wndTree.SetItemImage(hItem, 0, 0);
CString strvalue = "select * from CodeTable where CodeID = ", strdata;
long lvalue = m_wndTree.GetItemData(hItem);
strdata.Format("%ld", lvalue);
strvalue = strvalue + "" + strdata +"";
m_DbObject.GetValue(strvalue);
m_DbObject.SetData("IsDir", "1");
m_DbObject.Update();
}
if(hItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hItem));
htemp1 = m_wndTree.InsertItem(_T(str1), hItem);
m_wndTree.SetMyItemImage(htemp1, str1);
}
dbstr[0].Format("%s", OpenFileDlg.GetFileName());
dbstr[1] = strPathName;
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
dbstr[4].Format("%s", "0");//0为文件
m_DbObject.AddRecord(dbstr);
_variant_t vtemp;
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
m_wndTree.SetItemData(htemp1, long(vtemp));
}
}
else
{
str1.Format("%s", OpenFileDlg.GetFileName());
if(m_NewFlag) //新建同级节点
{
if(hpItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hpItem));
htemp1 = m_wndTree.InsertItem(_T(str1), hpItem);
m_wndTree.SetMyItemImage(htemp1, str1);
}
else //新建子节点
{
/*如父节点原来无子节点,则更改父节点状态并修改数据库*/
if((hItem != NULL) && (!m_wndTree.ItemHasChildren(hItem)))
{
m_wndTree.SetItemImage(hItem, 0, 0);
CString strvalue = "select * from CodeTable where CodeID = ", strdata;
long lvalue = m_wndTree.GetItemData(hItem);
strdata.Format("%ld", lvalue);
strvalue = strvalue + "" + strdata +"";
m_DbObject.GetValue(strvalue);
m_DbObject.SetData("IsDir", "1");
m_DbObject.Update();
}
if(hItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hItem));
htemp1 = m_wndTree.InsertItem(_T(str1), hItem);
m_wndTree.SetMyItemImage(htemp1, str1);
}
dbstr[0].Format("%s", OpenFileDlg.GetFileName());
dbstr[1] = strPathName;
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
dbstr[4].Format("%s", "0");//0为文件
m_DbObject.AddRecord(dbstr);
_variant_t vtemp;
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
m_wndTree.SetItemData(htemp1, long(vtemp));
}
if(hItem != NULL)
m_wndTree.Expand(hItem, TVE_EXPAND);
}
return 0;
}
int CMainFrame::ImportDir()
{
/* HTREEITEM hItem, hpItem, hti;
// int ParentID = m_wndTree.GetItemData(hItem);
CString FilePath, FileName, dbstr[6];
if(TakeDirDialog(FilePath) == 0)
{
//MessageBox(FilePath);
int i,j;
FileName = FilePath;
for(i = FilePath.GetLength() - 1; i >= 0; i--)
if(FilePath.GetAt(i) == '\\')
break;
if(i >= 0)
{
i++;
for(j = 0; i < FilePath.GetLength(); j++, i++)
FileName.SetAt(j, FilePath.GetAt(i));
FileName.SetAt(j, '\0');
}
hItem = m_wndTree.GetSelectedItem();
if(hItem == NULL)
hItem = m_wndTree.GetRootItem();
hpItem = m_wndTree.GetParentItem(hItem);
if(m_SelectFlag == 1)
SelectDlg.DoModal();
if(m_NewFlag) //新建同级节点
{
hti = m_wndTree.InsertItem(FileName, hpItem);
m_wndTree.SetItemImage(hti, 0, 0);
dbstr[0] = FileName;
dbstr[1].Empty();
dbstr[2].Format("%s", "2004-10-05");
if(hti != NULL)
{
if(hpItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hpItem));
else
dbstr[3].Empty();
}
dbstr[4].Format("%s", "1");//0为文件
}
else //新建子节点
{
hti = m_wndTree.InsertItem(FileName, hItem);
m_wndTree.SetItemImage(hti, 0, 0);
// m_wndTree.SetItemData(hti, m_wndTree.GetItemData());
dbstr[0] = FileName;
dbstr[1].Empty();
dbstr[2].Format("%s", "2004-10-05");
if(hti != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hItem));
dbstr[4].Format("%s", "1");//0为文件
}
m_DbObject.AddRecord(dbstr);
_variant_t vtemp;
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
m_wndTree.SetItemData(hti, long(vtemp));
BrowseDir(FilePath, m_wndTree, hti);
if(!m_NewFlag)
m_wndTree.Expand(hItem, TVE_EXPAND);
}
MessageBox(FilePath);*/
HTREEITEM hItem, hpItem, hti;
CString FilePath, FileName, dbstr[6];
if(TakeDirDialog(FilePath) == 0)
{
int i,j;
FileName = FilePath;
for(i = FilePath.GetLength() - 1; i >= 0; i--)
if(FilePath.GetAt(i) == '\\')
break;
if(i >= 0)
{
i++;
for(j = 0; i < FilePath.GetLength(); j++, i++)
FileName.SetAt(j, FilePath.GetAt(i));
FileName.SetAt(j, '\0');
}
hItem = m_wndTree.GetSelectedItem();
if(hItem == NULL)
hItem = m_wndTree.GetRootItem();
hpItem = m_wndTree.GetParentItem(hItem);
if(m_SelectFlag == 1)
{
if(SelectDlg.DoModal() == IDOK)
{
if(m_NewFlag) //新建同级节点
{
hti = m_wndTree.InsertItem(FileName, hpItem);
m_wndTree.SetItemImage(hti, 0, 0);
dbstr[0] = FileName;
dbstr[1].Empty();
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
if(hti != NULL)
{
if(hpItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hpItem));
else
dbstr[3].Empty();
}
dbstr[4].Format("%s", "1");//0为文件
}
else //新建子节点
{
/*如父节点原来无子节点,则更改父节点状态并修改数据库*/
if((hItem != NULL) && (!m_wndTree.ItemHasChildren(hItem)))
{
m_wndTree.SetItemImage(hItem, 0, 0);
CString strvalue = "select * from CodeTable where CodeID = ", strdata;
long lvalue = m_wndTree.GetItemData(hItem);
strdata.Format("%ld", lvalue);
strvalue = strvalue + "" + strdata +"";
m_DbObject.GetValue(strvalue);
m_DbObject.SetData("IsDir", "1");
m_DbObject.Update();
}
hti = m_wndTree.InsertItem(FileName, hItem);
m_wndTree.SetItemImage(hti, 0, 0);
// m_wndTree.SetItemData(hti, m_wndTree.GetItemData());
dbstr[0] = FileName;
dbstr[1].Empty();
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
if(hti != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hItem));
dbstr[4].Format("%s", "1");//0为文件
}
m_DbObject.AddRecord(dbstr);
_variant_t vtemp;
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
m_wndTree.SetItemData(hti, long(vtemp));
BrowseDir(FilePath, m_wndTree, hti);
if(!m_NewFlag)
m_wndTree.Expand(hItem, TVE_EXPAND);
CString ts = "成功导入" + FilePath + "下所有文件";
MessageBox(ts, "源码利器");
}
}
else
{
if(m_NewFlag) //新建同级节点
{
hti = m_wndTree.InsertItem(FileName, hpItem);
m_wndTree.SetItemImage(hti, 0, 0);
dbstr[0] = FileName;
dbstr[1].Empty();
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
if(hti != NULL)
{
if(hpItem != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hpItem));
else
dbstr[3].Empty();
}
dbstr[4].Format("%s", "1");//0为文件
}
else //新建子节点
{
/*如父节点原来无子节点,则更改父节点状态并修改数据库*/
if((hItem != NULL) && (!m_wndTree.ItemHasChildren(hItem)))
{
m_wndTree.SetItemImage(hItem, 0, 0);
CString strvalue = "select * from CodeTable where CodeID = ", strdata;
long lvalue = m_wndTree.GetItemData(hItem);
strdata.Format("%ld", lvalue);
strvalue = strvalue + "" + strdata +"";
m_DbObject.GetValue(strvalue);
m_DbObject.SetData("IsDir", "1");
m_DbObject.Update();
}
hti = m_wndTree.InsertItem(FileName, hItem);
m_wndTree.SetItemImage(hti, 0, 0);
// m_wndTree.SetItemData(hti, m_wndTree.GetItemData());
dbstr[0] = FileName;
dbstr[1].Empty();
// dbstr[2].Format("%s", "2004-10-05");
COleDateTime oleDt = COleDateTime::GetCurrentTime();
dbstr[2]=oleDt.Format("%y年%m月%d日");
if(hti != NULL)
dbstr[3].Format("%ld", m_wndTree.GetItemData(hItem));
dbstr[4].Format("%s", "1");//0为文件
}
m_DbObject.AddRecord(dbstr);
_variant_t vtemp;
vtemp = m_DbObject.m_pRecordset->GetCollect("CodeID");
m_wndTree.SetItemData(hti, long(vtemp));
BrowseDir(FilePath, m_wndTree, hti);
if(!m_NewFlag)
m_wndTree.Expand(hItem, TVE_EXPAND);
CString ts = "成功导入" + FilePath + "下所有文件";
MessageBox(ts, "源码利器");
}
}
return 0;
}
void CMainFrame::OnEditcut()
{
// TODO: Add your command handler code here
CCodeManagerView *icrEditView = (CCodeManagerView *)GetActiveView();
CRichEditCtrl &SynCtrl = icrEditView->GetRichEditCtrl();
CWnd *pWnd = GetFocus();
if(pWnd->m_hWnd != SynCtrl.m_hWnd)
{
pWnd->SendMessage(WM_CUT, 0, 0);
return;
}
CHARRANGE cr;
SynCtrl.GetSel( cr );
icrEditView->GetRichEditCtrl().Cut();
if(cr.cpMax != cr.cpMin)
{
icrEditView->ReCalcCursorPostion();
}
else
{
SCROLLINFO si;
si.cbSize = sizeof(si);
icrEditView->GetScrollInfo(SB_HORZ, &si);
icrEditView->m_nHorzMaxOld = si.nMax;
}
}
void CMainFrame::OnEditundo()
{
// TODO: Add your command handler code here
GetFocus()->SendMessage(EM_UNDO, 0, 0);
}
void CMainFrame::OnViewdo()
{
// TODO: Add your command handler code here
GetFocus()->SendMessage(EM_REDO, 0, 0);
}
void CMainFrame::OnEditcopy()
{
// TODO: Add your command handler code here
CCodeManagerView *icrEditView = (CCodeManagerView *)GetActiveView();
CRichEditCtrl &edit = icrEditView->GetRichEditCtrl();
CWnd *pWnd = GetFocus();
if(pWnd->m_hWnd != edit.m_hWnd)
{
pWnd->SendMessage(WM_COPY, 0, 0);
}
else
{
edit.Copy();
}
}
void CMainFrame::OnEditpaste()
{
// TODO: Add your command handler code here
char * buffer;
if(!OpenClipboard())
return;
buffer = (char*)::GetClipboardData(CF_TEXT);
CloseClipboard();
CString str = buffer;
CCodeManagerView *icrEditView = (CCodeManagerView *)GetActiveView();
CRichEditCtrl &edit = icrEditView->GetRichEditCtrl();
CWnd *pWnd = GetFocus();
if(pWnd->m_hWnd!=edit.m_hWnd)
{
pWnd->SendMessage(WM_PASTE, 0, 0);
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -