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

📄 favdialog.cpp

📁 一个操作系统源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	TCHAR szBuffer[400];
    memset(szBuffer,0,sizeof(szBuffer));
	memset(szTempPath,0,sizeof(szTempPath));
	CSuperWorldApp *pApp = (CSuperWorldApp *)AfxGetApp();
	if(::GetModuleFileName(NULL,szBuffer,MAX_PATH)!=0)
	{
		pApp->GetCurDir(szBuffer,szTempPath);
	}
    
	lstrcat(szTempPath,"PageFav.mdb");
	if(!InitODBCEnvironment(szTempPath))
		 return;
	 memset(m_szPathName,0,sizeof(m_szPathName));
	 lstrcpy(m_szPathName,szTempPath);
	 //open the database and init it
	 OpenInitDatabase(PAGENAME);
}
void CFavDialog::CloseDatabase()
{
	if(m_dataRecset != NULL)
	{
		if(m_dataRecset->IsOpen ())
			m_dataRecset->Close ();
		delete m_dataRecset;
		m_dataRecset = NULL;
	}
	closeDatabase(&m_pDB);
	CloseODBCEnvironment(m_szPathName);
}
void CFavDialog::OnDestroy() 
{
	CDialog::OnDestroy();
	
	CloseDatabase()	;
//	delete m_pImageList;
}
void CFavDialog::RefreshData()
{
	CString szTemp;
	CString szFirst;
	CStringList szGroup;
	CString szGroupList;
	szGroupList.Empty();
	szTemp.Empty();
	int nIndex=0;
   	if(m_dataRecset != NULL)
	{
		//list group
        m_dataRecset->MoveFirst();
		while(!m_dataRecset->IsEOF())
		{
            if(szGroupList.Find(m_dataRecset->m_groupname)==-1)
			{
				szGroup.AddTail(m_dataRecset->m_groupname);
				szGroupList += m_dataRecset->m_groupname;
				szGroupList += "|";
			}
            m_dataRecset->MoveNext();
		}

		szFirst.Empty();
		szFirst = szGroup.GetHead();
		int iCount=szGroup.GetCount();
        for(int i=0;i<iCount;i++)
		{
			szTemp.Empty();
			szTemp = "◆ ";
			szTemp += szGroup.GetHead();
			m_list_group.AddString(szTemp);
			szGroup.RemoveHead();
		}
		///member
		AddMemberForList(szFirst);
	}
}
void CFavDialog::AddMemberForList(CString szTemp)
{
	m_list_member.DeleteAllItems();
    
	m_dataRecset->MoveFirst();
	LV_ITEM lvitem;
	TCHAR szText[MAX_PATH]={0};

	while(!m_dataRecset->IsEOF())
	{
        if(m_dataRecset->m_groupname.Find(szTemp)!=-1)
		{
			memset(szText,0,sizeof(szText));
			lstrcpy(szText,m_dataRecset->m_membername);
			lvitem.mask=LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;

			lvitem.iItem=0;

			lvitem.iSubItem=0;

			lvitem.pszText=szText;

			lvitem.iImage=0;

			lvitem.lParam=0;

			m_list_member.InsertItem(&lvitem);//返回表项插入后的索引号

		}
        m_dataRecset->MoveNext();
	}

}


void CFavDialog::OnSelchangeListGroup() 
{
	CString szTemp;
	szTemp.Empty();
	int iSel=m_list_group.GetCurSel();
	m_list_group.GetText(iSel,szTemp);
	CString szGroup;
	szGroup.Empty();
	szGroup = szTemp.Mid(3);
	AddMemberForList(szGroup);
}
void CFavDialog::RunApp(LPCTSTR lpszURL)
{
	CString strParams, strURL = lpszURL, strDir;

	if(strURL.Left(7).CompareNoCase("http://") != 0)
	{
		// Make sure filename isn't quoted before arguments
		int nStartQuote = strURL.Find("\"",0);
		int nEndQuote = 0;

		// Did we find a starting quote?
		if(nStartQuote >= 0)
		{
			// Yes...look for the ending quote
			nEndQuote = strURL.Find("\"",nStartQuote+1);
			if(nEndQuote)
			{
				// Seperate the URL and its parameters
				strParams = strURL.Mid(nEndQuote+1);
				strURL = strURL.Mid(nStartQuote+1,nEndQuote-1);
			}
		}
		else
		{
			int nBlank;

			// Look for a blank
			nBlank = strURL.Find(" ",0);

			// Find the ending blank
			if(nBlank > 0)
			{
				// Seperate the URL and its parameters
				strParams = strURL.Mid(nBlank+1);
				strURL = strURL.Left(nBlank);
			}
		}

		// Set the default directory location to be the same as the
		// file location
		strDir = SplitFileName(strURL,DRIVE|PATH);
	}
	else strParams.Empty();

	// Run the program
	int nRet = (int) ShellExecute(NULL,"open",strURL,strParams,strDir,SW_SHOWNORMAL);

	// Did the execution fail?
	if(nRet <= 32)
	{
		MessageBox("找不到指定的文件","提示",MB_OK|MB_ICONWARNING);
	}
}

void CFavDialog::OnButtonBrowse() 
{
	CString szBrowse;
	CString szName;

	szBrowse.Empty();
	int iSel=m_list_group.GetCurSel();
	CString szSel;
	szSel.Empty();
    if(iSel<0)
		iSel=0;
	m_list_group.GetText(iSel,szSel);
    CString szTemp;
	szTemp.Empty();
	szTemp = szSel.Mid(3);
	szSel.Empty();
	szSel = szTemp;

	int nItem;
	POSITION pos = m_list_member.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		MessageBox("请选择所要浏览的网站!","提示",MB_OK);
		return;
	}

	else
	{
	   nItem = m_list_member.GetNextSelectedItem(pos);
	   szName.Empty();
	   szName = m_list_member.GetItemText(nItem,0);
	   m_dataRecset->MoveFirst();
		while(!m_dataRecset->IsEOF())
		{
			if(m_dataRecset->m_groupname.Find(szSel)!=-1 && m_dataRecset->m_membername.Find(szName)!=-1)
			{
				szBrowse.Empty();
				szBrowse = m_dataRecset->m_pageaddress;
				break;
			}
            m_dataRecset->MoveNext();
		}
	}
	RunApp(szBrowse);
}
CString CFavDialog::SplitFileName(LPCTSTR lpszPath, int nSplit)
{
	CString strResult;

	char szPath[800],szDrive[800],szFileName[800],szExt[800];
	_splitpath(lpszPath,szDrive,szPath,szFileName,szExt);

	if(nSplit & DRIVE)
		strResult += szDrive;
	if(nSplit & PATH)
		strResult += szPath;
	if(nSplit & FNAME)
		strResult += szFileName;
	if(nSplit & EXT)
		strResult += szExt;

	return(strResult);
}

void CFavDialog::OnDblclkListMember(NMHDR* pNMHDR, LRESULT* pResult) 
{
	OnButtonBrowse();
	*pResult = 0;
}
void CFavDialog::SaveMemberToFile()
{
	CSuperWorldApp *pApp = (CSuperWorldApp *)AfxGetApp();
	int i=m_list_group.GetCurSel();
	CString szGroup;
	szGroup.Empty();
	if(i>=0)
		m_list_group.GetText(i,szGroup);
	else
        m_list_group.GetText(0,szGroup); 
	CString szGroupTemp;
	szGroupTemp.Empty();
	szGroupTemp = szGroup.Mid(3);

	m_dataRecset->AddNew ();
	m_dataRecset->m_groupname=szGroupTemp;
	m_dataRecset->m_membername=pApp->m_szNetName;
	m_dataRecset->m_pageaddress=pApp->m_szNetAddress;
	m_dataRecset->Update ();
}

void CFavDialog::OnButtonDelmember() 
{
	int nItem;
	POSITION pos = m_list_member.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		MessageBox("请先选择所要删除的记录!","提示",MB_OK);
		return;
	}
	else
	{
	   nItem = m_list_member.GetNextSelectedItem(pos);
	   CString szGroup,szMember;
	   szGroup.Empty();
	   szMember.Empty();
	   int iSel=m_list_group.GetCurSel();
	   if(iSel<0)
		   iSel=0;
	   m_list_group.GetText(iSel,szGroup);
	   CString szTemp;
	   szTemp.Empty();
	   szTemp = szGroup.Mid(3);
       szGroup.Empty();
	   szGroup = szTemp;
	   szMember=m_list_member.GetItemText(nItem,0);
       if(MessageBox("真的要删除此记录吗?","提示",MB_YESNO)==IDYES)
	   {
		   m_list_member.DeleteItem(nItem);
		   //delete database
		   m_dataRecset->MoveFirst();
			while(!m_dataRecset->IsEOF())
			{
                if(m_dataRecset->m_groupname.Find(szGroup)!=-1 && m_dataRecset->m_membername==szMember)
				{
				   if(m_dataRecset->CanUpdate())
				   {
					   m_dataRecset->Delete();
					   m_dataRecset->MoveNext();
				   }
					break;
				}
				m_dataRecset->MoveNext();
			}
	   }
	}	
}

void CFavDialog::OnButtonProperty() 
{
	CFavProperty dlg;
	CSuperWorldApp *pApp = (CSuperWorldApp *)AfxGetApp();
	int nItem;
	POSITION pos = m_list_member.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{
		MessageBox("请先选择成员!","提示",MB_OK);
		return;
	}
	else
	{
	   nItem = m_list_member.GetNextSelectedItem(pos);
	   m_nItem=nItem;
	   m_dataRecset->MoveFirst();
	   CString szGroup,szMember,szSel;
	   szGroup.Empty();
	   szMember.Empty();
	   int iSel=m_list_group.GetCurSel();
	   if(iSel<0)
		   iSel=0;
	   m_nUpdateMoveItem=0;
		m_list_group.GetText(iSel,szGroup);
	   szMember=m_list_member.GetItemText(nItem,0);
		CString szGroupTemp;
		szGroupTemp.Empty();
		szGroupTemp = szGroup.Mid(3);
        szGroup.Empty();
		szGroup = szGroupTemp;
		while(!m_dataRecset->IsEOF())
		{
				if(m_dataRecset->m_groupname.Find(szGroup)!=-1 && m_dataRecset->m_membername.Find(szMember)!=-1)
				{
					pApp->m_szNetName.Empty();
					pApp->m_szNetName = m_dataRecset->m_membername;
					pApp->m_szNetAddress.Empty();
					pApp->m_szNetAddress = m_dataRecset->m_pageaddress;
					break;
				}
		        m_dataRecset->MoveNext();
				m_nUpdateMoveItem ++;
		}
	}

	if(IDOK==dlg.DoModal())
	{
        //save item
		UpdateMemberToFile();
	}
}
void CFavDialog::UpdateMemberToFile()
{
	CSuperWorldApp *pApp = (CSuperWorldApp *)AfxGetApp();
	int i=m_list_group.GetCurSel();
	CString szGroup;
	szGroup.Empty();
	if(i>=0)
		m_list_group.GetText(i,szGroup);
	else
        m_list_group.GetText(0,szGroup); 
	CString szGroupTemp;
	szGroupTemp.Empty();
	szGroupTemp = szGroup.Mid(3);   
	m_dataRecset->Edit ();
	m_dataRecset->m_groupname=szGroupTemp;
	m_dataRecset->m_membername=pApp->m_szNetName;
	m_dataRecset->m_pageaddress=pApp->m_szNetAddress;
	m_dataRecset->Update ();
	
    m_list_member.SetItemText(m_nItem,0,pApp->m_szNetName);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -