📄 mainfrm.cpp
字号:
{
// TODO: Add your command handler code here
_RecordsetPtr MySet;
CString str;
int iCount;
_variant_t Holder;
MySet.CreateInstance(__uuidof(Recordset));
DlgAddFiles dlg;
begin://如果目录名重复,跳转到开始位置重新输入
iCount=0;
if(dlg.DoModal()==IDOK){
str=m_wndTree.GetItemText(m_wndTree.hItem);
if(str==""){
AfxMessageBox("你没有选择目录,请选择");
return ;
}
if(dlg.m_strFilesName.IsEmpty()){
AfxMessageBox("你没有输入要添加的文章名称,请重新输入");
goto begin;
}
if(m_wndTree.SelectNode.GetfolderType()=="1"){
AfxMessageBox("你选择的不是目录,不能添加文章");
return ;
}
//////////////////////////判断是否有重复目录名////////////////////
for(int i=0;i<MyNodes.size();i++){
if(MyNodes[i].GetfolderParentId()==m_wndTree.SelectNode.GetfolderId() && dlg.m_strFilesName==MyNodes[i].GetfolderName()){
iCount++;
}
}
if(iCount>0) {
AfxMessageBox("你输入的文章名称在 \""+m_wndTree.SelectNode.GetfolderName()+"\" 目录下已经存在,请更名");
goto begin;
}
int pos=AfxMessageBox("你确定添加此文章到 \""+m_wndTree.SelectNode.GetfolderName()+"\" 选定位置吗?",MB_OKCANCEL);
if(pos==1){
MyNodes.clear();
CString strData,PN_Name,strNodetye="1";
strData=MySetDate();
PN_Name.Format("%d",p_Checkout.StringToInt(m_wndTree.SelectNode.GetfolderTurn())+1);
_variant_t strSQLInsert("INSERT INTO TTree (Title,ParentId,Type,CreateTime,Turn) VALUES('"+dlg.m_strFilesName+"','"+m_wndTree.SelectNode.GetfolderId()+"','"+strNodetye+"','"+strData+"','"+PN_Name+"')");
if(!theApp.ADOExecute(MySet,strSQLInsert)) return ;
m_wndTree.DeleteAllItems();
hti = m_wndTree.InsertItem(_T("我的资料管理目录"));
InitNodeFile(hti,"0");
m_wndTree.Expand(hti, TVE_EXPAND);
//AncestorNodeFile(hti);
}else{
goto begin;
}
}else{
}
if(adStateOpen==MySet->State) MySet->Close();
MySet.Release();
}
void CMainFrame::OnUpdateAddfiles(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(theApp.m_AddNode);
}
void CMainFrame::OnDeletenode()
{
// TODO: Add your command handler code here
CString str=m_wndTree.GetItemText(m_wndTree.hItem);
if(str==""){
AfxMessageBox("你没有选择目录,请选择");
return ;
}
//////////////////////////判断录入首目录////////////////////////////////
int pos=AfxMessageBox("你确定要删除 \""+m_wndTree.SelectNode.GetfolderName()+"\"项吗?如果删除其下所有子项将全部删除",MB_OKCANCEL);
if(pos==1){
DeleteNodes(m_wndTree.SelectNode);
MyNodes.clear();
}
m_wndTree.DeleteAllItems();
hti = m_wndTree.InsertItem(_T("我的资料管理目录"));
InitNodeFile(hti,"0");
m_wndTree.Expand(hti, TVE_EXPAND);
}
void CMainFrame::OnUpdateDeletenode(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(theApp.m_AddNode);
}
void CMainFrame::OnUpdatenode()
{
// TODO: Add your command handler code here
_RecordsetPtr MyUpdateSet;
CString str;
_variant_t Holder;
MyUpdateSet.CreateInstance(__uuidof(Recordset));
str=m_wndTree.GetItemText(m_wndTree.hItem);
if(str==""){
AfxMessageBox("你没有选择目录,请选择");
return ;
}else if(str=="我的资料管理目录"){
AfxMessageBox("我的资料管理目录不能修改");
return ;
}
DlgUpdateNode dlg;
begin://如果目录名重复,跳转到开始位置重新输入
dlg.m_strDlgName=m_wndTree.SelectNode.GetfolderName();
if(dlg.DoModal()==IDOK){
if(dlg.m_strFilesName.IsEmpty()){
AfxMessageBox("你没有输入要修改的目录/文章名称,请重新输入");
goto begin;
}
int pos=AfxMessageBox("你确定把名字 \""+m_wndTree.SelectNode.GetfolderName()+"\" 修改为 \""+dlg.m_strFilesName+"\" 吗?",MB_OKCANCEL);
if(pos==1){
/////////////////////////////////////修改文章节点///////////////////////////////
_variant_t _strSQL("SELECT * FROM TTree WHERE NodeId="+m_wndTree.SelectNode.GetfolderId());
if(!theApp.ADOExecute(MyUpdateSet,_strSQL)) return ;
MyNodes.clear();
while(!MyUpdateSet->adoEOF){
MyUpdateSet->PutCollect("Title",_variant_t(dlg.m_strFilesName));
MyUpdateSet->Update();
MyUpdateSet->MoveNext();
}
m_wndTree.DeleteAllItems();
hti = m_wndTree.InsertItem(_T("我的资料管理目录"));
InitNodeFile(hti,"0");
m_wndTree.Expand(hti, TVE_EXPAND);
}else{
goto begin;
}
}else{
}
if(adStateOpen==MyUpdateSet->State) MyUpdateSet->Close();
MyUpdateSet.Release();
}
void CMainFrame::OnUpdateUpdatenode(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(theApp.m_AddNode);
}
int CMainFrame::CreateMyEditToolBar()
{
#define EDIT_BOX_WIDTH 200
int index=0;
CRect rect;
while(m_wndToolBar.GetItemID(index)!=ID_BEDIT) index++;
m_wndToolBar.SetButtonInfo(index,ID_BEDIT,TBBS_SEPARATOR,EDIT_BOX_WIDTH);//TBBS_SEPARATOR/TBBS_BUTTON
m_wndToolBar.GetItemRect(index, &rect);
rect.bottom=30;
rect.top=5;
if(!m_wndToolBar.m_Edit.Create(
WS_CHILD|WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS|WS_BORDER,
rect, &m_wndToolBar,IDC_SELECT_EDIT))
{
MessageBox("Failed to create Edit");
return FALSE;
}
m_wndToolBar.m_Edit.ShowWindow(SW_SHOW);
return TRUE;
}
CString CMainFrame::MySetDate()
{
CTime tm = CTime::GetCurrentTime();
CString strData,strNodetye="1";
strData.Format("%d-%d-%d",tm.GetYear(), tm.GetMonth(), tm.GetDay());
CString SelectAt;
SelectAt.Empty();
SelectAt="yyyy-mm-dd";
int j=0,UpdateDay=0;
if(strData.GetLength()==10) return strData;
if(tm.GetMonth()<10){
for(int i=0;i<strData.GetLength();i++){
if(tm.GetMonth()<10 && i==5){
SelectAt.SetAt(j,'0');
j++;
}
SelectAt.SetAt(j,strData.GetAt(i));
j++;
}
strData=SelectAt;
UpdateDay+=1;
}
if(tm.GetDay()<10){
SelectAt="yyyy-mm-dd";
j=0;
UpdateDay+=1;
if(UpdateDay==1){
for(int i=0;i<strData.GetLength();i++){
if(tm.GetDay()<10 && i==8){
SelectAt.SetAt(j,'0');
j++;
}
SelectAt.SetAt(j,strData.GetAt(i));
j++;
}
}else if(UpdateDay==2){
for(int i=0;i<strData.GetLength()-1;i++){
if(tm.GetDay()<10 && i==8){
SelectAt.SetAt(j,'0');
j++;
}
SelectAt.SetAt(j,strData.GetAt(i));
j++;
}
}
}
return SelectAt;
}
void CMainFrame::DeleteNodes(CMyFolder strNodeId)
{
int j=0;
_RecordsetPtr DelSet,DelFileSet,DelAttachmentSet;
DelSet.CreateInstance(__uuidof(Recordset));
DelFileSet.CreateInstance(__uuidof(Recordset));
DelAttachmentSet.CreateInstance(__uuidof(Recordset));
//AfxMessageBox(strNodeId.GetfolderName());
if(strNodeId.GetfolderName()=="我的资料管理目录"){
j=1;
}
for(int i=j;i<MyNodes.size();i++){
if(MyNodes[i].GetfolderParentId()==strNodeId.GetfolderId()){
DeleteNodes(MyNodes[i]);
}
}
if(strNodeId.GetfolderType()=="1"){
_variant_t _strSQLFile("DELETE FROM TContent WHERE NodeId='"+strNodeId.GetfolderId()+"'");
if(!theApp.ADOExecute(DelFileSet,_strSQLFile)) return ;
if(strNodeId.GetfolderAttachment()=="1"){
_variant_t _strSQLAttachment("DELETE FROM TAttachment WHERE NodeId='"+strNodeId.GetfolderId()+"'");
if(!theApp.ADOExecute(DelAttachmentSet,_strSQLAttachment)) return ;
}
}
_variant_t _strSQL("DELETE FROM TTree WHERE NodeId="+strNodeId.GetfolderId());
if(!theApp.ADOExecute(DelSet,_strSQL)) return ;
if(adStateOpen==DelSet->State) DelSet->Close();
DelSet.Release();
if(adStateOpen==DelFileSet->State) DelFileSet->Close();
DelFileSet.Release();
if(adStateOpen==DelAttachmentSet->State) DelAttachmentSet->Close();
DelAttachmentSet.Release();
}
void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
if(theApp.m_SaveFiles){
int pos=AfxMessageBox("该文章已经修改,是否保存?",MB_OKCANCEL);
if(pos==1){
CDotNETView* p = (CDotNETView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
//CDotNETApp *pApp=(CDotNETApp *)AfxGetApp();
p->FilesSave();
}
}
CAutoHideFrame::OnClose();
}
void CMainFrame::OnAddbookmark()
{
// TODO: 在此添加命令处理程序代码
if(m_wndTree.SelectNode.GetfolderType()!="1"){
MessageBox("你在目录中选择的不是文章,不能添加书签,请重新选择。");
return ;
}
CDlgAddBookMark dlg;
dlg.m_strNodeId=m_wndTree.SelectNode.GetfolderId();
dlg.m_strBookMarkName=m_wndTree.SelectNode.GetfolderName();
dlg.DoModal();
}
void CMainFrame::OnUpdateAddbookmark(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
}
void CMainFrame::OnBookmanage()
{
// TODO: 在此添加命令处理程序代码
CDlgBookMarkManage dlg;
dlg.DoModal();
}
void CMainFrame::OnUpdateBookmanage(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用户界面处理程序代码
}
// 显示书签
void CMainFrame::ShowBookMark(void)
{
CString strFileName,strTAttachmentID;
_RecordsetPtr MySet;
_variant_t Holder;
int i=0;
MySet.CreateInstance(__uuidof(Recordset));
_variant_t _strSQL("SELECT * FROM BookMark");
if(!theApp.ADOExecute(MySet,_strSQL)) return ;
m_ListCtrl.DeleteAllItems();
while(!MySet->adoEOF){
Holder=MySet->GetCollect("NodeId");
strTAttachmentID = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
Holder=MySet->GetCollect("BookMark");
strFileName = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
m_ListCtrl.InsertItem(i,strTAttachmentID);//NodeName
m_ListCtrl.SetItemText(i,1,strFileName);
i++;
MySet->MoveNext();
}
if(adStateOpen==MySet->State) MySet->Close();
MySet.Release();
}
void CMainFrame::OnConnction()
{
// TODO: 在此添加命令处理程序代码
CString strPath;
static char BASED_CODE szFilter[] =
"TAttachment Files (*.mdb)|*.mdb|";
CFileDialog dlg(TRUE,NULL,NULL,NULL,szFilter);
if(dlg.DoModal() == IDOK)
{
strPath = dlg.GetPathName();
theApp.ADOConniction(strPath);
MyNodes.clear();
m_wndTree.DeleteAllItems();
hti = m_wndTree.InsertItem(_T("我的资料管理目录"));
InitNodeFile(hti,"0");
m_wndTree.Expand(hti, TVE_EXPAND);
//m_strFileName=dlg.GetFileName();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -