📄 xmlclassdocdlg.cpp
字号:
strQuery.Format("Classes/class/Propertys/property[@visit='%s']", PROTECTEDPROPERTY);
length = pDocManage->GetMemberNum(m_strClassName,strQuery);
m_strProtectedP.Format("%s:%d个", PROTECTEDPROPERTY, length);
strQuery.Format("Classes/class/Propertys/property[@visit='%s']", PRIVATEPROPERTY);
length = pDocManage->GetMemberNum(m_strClassName,strQuery);
m_strPrivateP.Format("%s:%d个", PRIVATEPROPERTY, length);
if((m_bPublic)&&(m_bFunction))
{
pDocManage->ReadFunctionInfo(m_ListCtrl, m_strClassName, PUBLICFUNCTION);
}
if((m_bProtected)&&(m_bFunction))
{
pDocManage->ReadFunctionInfo(m_ListCtrl, m_strClassName, PROTECTEDFUNCTION);
}
if((m_bPrivate)&&(m_bFunction))
{
pDocManage->ReadFunctionInfo(m_ListCtrl, m_strClassName, PRIVATEFUNCTION);
}
if((m_bPublic)&&(m_bProperty))
{
pDocManage->ReadPropertyInfo(m_ListCtrl, m_strClassName, PUBLICPROPERTY);
}
if((m_bProtected)&&(m_bProperty))
{
pDocManage->ReadPropertyInfo(m_ListCtrl, m_strClassName, PROTECTEDPROPERTY);
}
if((m_bPrivate)&&(m_bProperty))
{
pDocManage->ReadPropertyInfo(m_ListCtrl, m_strClassName, PRIVATEPROPERTY);
}
UpdateData(false);
//m_ListCtrl.SortItems(CompareFunc,(DWORD)(&m_ListCtrl));
delete pDocManage;
return true;
}
void CXMLClassDocDlg::OnNewClassdoc()
{
CAddClassDlg* pAddClassDlg = new CAddClassDlg();
if(pAddClassDlg->DoModal() == IDOK)
{
ReadClassList();
UpdateData(true);
if(!m_strClassName.IsEmpty())
{
ReadClassInfo();
}
}
delete pAddClassDlg;
}
void CXMLClassDocDlg::OnDblclkListClassinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
UpdateData(true);
char pszvisit[40];
memset(pszvisit, 0, sizeof(pszvisit));
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
if(!pos)
{
return;
}
int nIdx = m_ListCtrl.GetNextSelectedItem(pos);
int ID = (int)m_ListCtrl.GetItemData(nIdx);
m_ListCtrl.GetItemText(nIdx,1,pszvisit,sizeof(pszvisit));
if (((CString)pszvisit).Find(FUNCTION) > -1)
{
CFModifyDlg *pFModifyDlg = new CFModifyDlg();
pFModifyDlg->InitData(m_strClassName, ID);
if(pFModifyDlg->DoModal() == IDOK)
{
RefreshLoc();
}
delete pFModifyDlg;
}
else
{
CPModifyDlg *pPModifyDlg = new CPModifyDlg();
pPModifyDlg->InitData(m_strClassName, ID);
if(pPModifyDlg->DoModal() == IDOK)
{
RefreshLoc();
}
delete pPModifyDlg;
}
*pResult = 0;
}
void CXMLClassDocDlg::OnAddFunction()
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
}
if(m_strClassName.IsEmpty())
{
MessageBox("请先选择要添加操作的类!","错误",0);
return;
}
CAddFunctionDlg *pAddFunctionDlg = new CAddFunctionDlg();
pAddFunctionDlg->m_strClassName = m_strClassName;
if(pAddFunctionDlg->DoModal() == IDOK)
{
RefreshLoc();
}
delete pAddFunctionDlg;
}
void CXMLClassDocDlg::OnAddProperty()
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
}
if(m_strClassName.IsEmpty())
{
MessageBox("请先选择要添加操作的类!","错误",0);
return;
}
CAddPropertyDlg *pAddPropertyDlg = new CAddPropertyDlg();
pAddPropertyDlg->m_strClassName = m_strClassName;
if(pAddPropertyDlg->DoModal() == IDOK)
{
RefreshLoc();
}
delete pAddPropertyDlg;
}
void CXMLClassDocDlg::OnPrint()
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
}
UpdateData(true);
if(m_strClassName.IsEmpty())
{
MessageBox("请先选择要打印的类!","错误",0);
return;
}
CDocManage* pDocManage = new CDocManage();
pDocManage->BringDoc(m_strClassName, m_bPublic, m_bProtected, m_bPrivate, m_bFunction, m_bProperty);
delete pDocManage;
CPrintDocDlg *pPrintDocDlg = new CPrintDocDlg();
pPrintDocDlg->DoModal();
DeleteFile(theApp.m_strPrintPath);
delete pPrintDocDlg;
}
void CXMLClassDocDlg::OnDeletedoc()
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
}
CString strMes;
strMes.Format("你确定要删除类:%s 的文档吗?", m_strClassName);
if(MessageBox(strMes,"警告",1) != IDOK)
{
return;
}
UpdateData(true);
CDocManage* pDocManage = new CDocManage();
if(pDocManage->DeleteClass(m_strClassName))
{
ReadClassList();
m_ListCtrl.DeleteAllItems();
m_strClassDesc.Empty();
m_strClassName.Empty();
UpdateData(false);
}
delete pDocManage;
}
void CXMLClassDocDlg::OnDeletemember()
{
UpdateData(true);
char pszvisit[40];
memset(pszvisit, 0, sizeof(pszvisit));
POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
if(!pos)
{
MessageBox("请选中类的某个成员", "错误", 0);
return;
}
int nIdx = m_ListCtrl.GetNextSelectedItem(pos);
int ID = (int)m_ListCtrl.GetItemData(nIdx);
m_ListCtrl.GetItemText(nIdx,1,pszvisit,sizeof(pszvisit));
if (((CString)pszvisit).Find(FUNCTION) > -1)
{
CDocManage* pDocManage = new CDocManage();
if(pDocManage->DeleteFunction(m_strClassName,ID))
{
m_ListCtrl.DeleteItem(nIdx);
}
delete pDocManage;
}
else
{
CDocManage* pDocManage = new CDocManage();
if(pDocManage->DeleteProperty(m_strClassName,ID))
{
m_ListCtrl.DeleteItem(nIdx);
}
delete pDocManage;
}
}
//DEL void CXMLClassDocDlg::OnNewPath()
//DEL {
//DEL m_nNetRootFolderID = -1;
//DEL CDirDialog *pDirDlg = new CDirDialog;
//DEL pDirDlg->m_strTitle = "请选择文档保存路径";
//DEL if(pDirDlg->DoBrowse() == IDOK)
//DEL {
//DEL m_ListLoc.DeleteAllItems();
//DEL DeleteFile(PszINIFilePath);
//DEL FILE * pFile = fopen(PszINIFilePath, "w");
//DEL char pszPath[168];
//DEL memset(pszPath, 0, sizeof(pszPath));
//DEL
//DEL sprintf(pszPath, "INIPATH=%s\\\n", pDirDlg->m_strPath);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "SERNAME=%s\n", theApp.m_pro.m_strSerName);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "SERIP=%s\n", theApp.m_pro.m_strSerIp);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "USER=%s\n", theApp.m_pro.m_strUser);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "PASSWD=%s\n", theApp.m_pro.m_strPwd);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "DBSOURCE=%s\n", theApp.m_pro.m_strDBsource);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "UID=%s\n", theApp.m_pro.m_strDBUid);
//DEL fputs(pszPath, pFile);
//DEL sprintf(pszPath, "DBPASS=%s\n", theApp.m_pro.m_strDBPwd);
//DEL fputs(pszPath, pFile);
//DEL fclose(pFile);
//DEL ReadClassList();
//DEL m_ListCtrl.DeleteAllItems();
//DEL m_strClassDesc.Empty();
//DEL m_strClassName.Empty();
//DEL UpdateData(false);
//DEL
//DEL }
//DEL delete pDirDlg;
//DEL
//DEL }
void CXMLClassDocDlg::OnRclickListClassinfo(NMHDR* pNMHDR, LRESULT* pResult)
{
CPoint point;
GetCursorPos( &point );
if (point.x == -1 && point.y == -1)
{
//keystroke invocation
CRect rect;
GetClientRect(rect);
ClientToScreen(rect);
point = rect.TopLeft();
point.Offset(5, 5);
}
CMenu menu;
VERIFY(menu.LoadMenu(CG_IDR_POPUP_XMLCLASS_DOC_DLG));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = this;
while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
pWndPopupOwner);
}
void CXMLClassDocDlg::OnClickListloc(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
ReadClassInfo();
}
*pResult = 0;
}
void CXMLClassDocDlg::RefreshLoc()
{
POSITION pos =m_ListLoc.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nIdex = m_ListLoc.GetNextSelectedItem(pos);
m_strClassName = m_ListLoc.GetItemText(nIdex,0);
}
ReadClassInfo();
}
void CXMLClassDocDlg::OnRclickListloc(NMHDR* pNMHDR, LRESULT* pResult)
{
if(m_ListLoc.GetItemCount() == 0)
{
return;
}
CMenu menu;
CPoint point;
GetCursorPos( &point );
if (point.x == -1 && point.y == -1)
{
//keystroke invocation
CRect rect;
GetClientRect(rect);
ClientToScreen(rect);
point = rect.TopLeft();
point.Offset(5, 5);
}
menu.LoadMenu(CG_IDR_POPUP_XMLCLASS_DOC_LOC);
CMenu *pContextMenu=menu.GetSubMenu(0);
// ::CheckMenuRadioItem(menu.m_hMenu,IDM_POP_LARGE,IDM_POP_DETAILS,IDM_POP_LARGE+m_nMenu,MF_BYCOMMAND);
pContextMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|TPM_RIGHTBUTTON,point.x,point.y,this,NULL);
*pResult = 0;
}
void CXMLClassDocDlg::OnNewPath()
{
CDirDialog *pDirDlg = new CDirDialog;
pDirDlg->m_strTitle = "请选择文档保存路径";
if(pDirDlg->DoBrowse() == IDOK)
{
m_ListLoc.DeleteAllItems();
theApp.SetLocPath(pDirDlg->m_strPath);
theApp.SaveCfg();
ReadClassList();
m_ListCtrl.DeleteAllItems();
m_strPath = theApp.m_strLocPath;
m_strClassDesc.Empty();
m_strClassName.Empty();
UpdateData(FALSE);
}
delete pDirDlg;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -