⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlclassdocdlg.cpp

📁 文档生成工具 XML例子
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -