📄 favdialog.cpp
字号:
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 + -