📄 mainfrm.cpp
字号:
m_DropWin=new CDropWin();
BOOL bReturn=m_DropWin->CreateNew(nRect,this,ID_DROPWINDOW,IDR_MENU_DROPWINRD);
if(bReturn)
{
m_DropWin->ShowWindow(SW_HIDE);
m_DropWin->ShowView();
m_DropWin->ShowWindow(SW_SHOW);
m_bIsDropWin=TRUE;
}
else
MessageBox("Failed","Leo",MB_OK|MB_ICONSTOP);
::SendMessage(GetTestDownView()->m_hWnd,WM_LEODOWNINFO,0,(LPARAM)this);
return TRUE;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}
//CInternetView* CMainFrame::GetInternetView()
//{
//return (CInternetView*)m_SplitterWnd.GetPane(0,0);
//}
CTestDownView* CMainFrame::GetTestDownView()
{
//CContainerView* ContainerView=GetContainerView();
//return ContainerView->GetTestDownView();
return (CTestDownView*)m_SplitterWnd.GetPane(0,0);
}
CListViewInfo* CMainFrame::GetListViewInfo()
{
CContainerView* ContainerView=GetContainerView();
return ContainerView->GetListViewInfo();
}
CContainerView* CMainFrame::GetContainerView()
{
return (CContainerView*)m_SplitterWnd.GetPane(1,0);
}
void CMainFrame::OnIeUnreg()
{
// TODO: Add your command handler code here
CLRegistry nRegistry;
HKEY nKeyRoot=HKEY_USERS;
LPSTR nKeyPath=".DEFAULT\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
if(nRegistry.Open(nKeyRoot,nKeyPath))
{
if(nRegistry.DeleteValue("DisableRegistryTools"))
MessageBox("注册表解锁成功","Leo",MB_OK|MB_ICONINFORMATION);
else
MessageBox("注册表未锁","Leo",MB_OK|MB_ICONINFORMATION);
}
else
MessageBox("注册表未锁","Leo",MB_OK|MB_ICONINFORMATION);
}
void CMainFrame::OnIeTool()
{
// TODO: Add your command handler code here
CDlgIETool nDlgIETool;
if(nDlgIETool.DoModal()==IDOK)
{
}
}
void CMainFrame::OnIeHostroydel()
{
// TODO: Add your command handler code here
if(m_nThreadNumber==0)
{
CTestDownView *pView=GetTestDownView();
HKEY nhKeyRoot=HKEY_CURRENT_USER;
LPSTR nszKeyPath="Software\\BLeo2004\\DownLoad";
LPSTR nszProgramePath="Software\\BLeo2004\\Dir";
LPSTR nszSubKeyPath="Software\\BLeo2004\\DownLoad\\Down";
if(m_DownRegistry.Open(nhKeyRoot,nszProgramePath))
{
m_DownRegistry.Write("Number",0);
m_DownRegistry.Close();
m_nNumber=0;
CString sTemp;
int nCount=pView->m_ListNew.GetItemCount();
for(int i=0;i<nCount;i++)
{
sTemp="";
sTemp.Format("%s%d",nszSubKeyPath,i+1);
m_DownRegistry.DeleteValueKey(nhKeyRoot,(LPCTSTR)sTemp);
}
pView->m_ListNew.DeleteAllItems();
pView->m_ListNew.SetAutoSize(0,9);
}
CHttpDownLoad *pHttpDownLoad;
THREADNUMBER *stThreadNumber;
for(POSITION pos=m_HttpDLPtr.GetStartPosition();pos!=NULL;)
{
m_HttpDLPtr.GetNextAssoc(pos,(void*&)stThreadNumber,(void*&)pHttpDownLoad);
delete pHttpDownLoad;
}
m_HttpDLPtr.RemoveAll();
m_ToolTipArray.FreeExtra();
m_ToolTipArray.RemoveAll();
m_ToolTipArray.SetSize(1);
}
}
void CMainFrame::OnDownTool()
{
// TODO: Add your command handler code here
OnDropwinTool();
}
void CMainFrame::OnDownDropwin()
{
// TODO: Add your command handler code here
if(!m_bIsDropWin)
{
m_bIsDropWin=TRUE;
m_DropWin->ShowWindow(SW_SHOW);
}
else
{
m_bIsDropWin=FALSE;
m_DropWin->ShowWindow(SW_HIDE);
}
}
void CMainFrame::OnViewLeoToolbar()
{
// TODO: Add your command handler code here
BOOL bVisible;
bVisible=(m_ToolBarNew.GetStyle()&WS_VISIBLE);
int nShow=(bVisible) ? SW_HIDE : SW_SHOWNORMAL;
m_ToolBarNew.ShowWindow(nShow);
RecalcLayout();
}
void CMainFrame::OnDropwinAddJob()
{
// TODO: Add your command handler code here
DROP_URL pDropUrl;
//Right Read a FileName from url
CString csTemp2;
if(!m_Url.IsEmpty())
{
CString cs,csTemp;
int nindex=1;
csTemp="";
csTemp2="";
cs=m_Url;
csTemp=cs.Right(1);
csTemp2=csTemp;
cs=cs.Left(cs.GetLength()-1);
while(csTemp!="/")
{
csTemp="";
csTemp=cs.Right(1);
csTemp2.Insert(0,(LPCTSTR)csTemp);
cs=cs.Left(cs.GetLength()-1);
}
//add FileName
csTemp2=csTemp2.Right(csTemp2.GetLength()-1);
}
m_FileName=csTemp2;
pDropUrl.pMainWnd=this;
pDropUrl.strComment=m_Comment;
pDropUrl.strLocatinUrl=m_Url;
pDropUrl.strPathName=m_SavePath;
pDropUrl.strFileName=m_FileName;
pDropUrl.bRename=m_bRename;
CDownAddJob pDownAddJob((void*)&pDropUrl);
CDownProSheet pDownProSheet("添加下载任务-Leo",NULL,0);
pDownProSheet.AddPage(&pDownAddJob);
pDownProSheet.DoModal();
}
void CMainFrame::OnDropUrl(WPARAM wParam,LPARAM lParam)
{
//Recv a Message from CDropWin(CDropView) to Drop Url
DROP_URL *pDropUrl=(DROP_URL*)lParam;
m_Url=pDropUrl->strLocatinUrl;
m_Comment=pDropUrl->strComment;
OnDropwinAddJob();
}
void CMainFrame::OnUpdateDownDropwin(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(m_bIsDropWin)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
void CMainFrame::OnDownAddJobPage(WPARAM wParam,LPARAM lParam)
{
m_nThreadNumber++;
if(m_nThreadNumber>0)
m_DropWin->SetTimerPaint(1);
CListViewInfo *pView=GetListViewInfo();
pView->m_pListBoxInfo.ResetContent();
///Start DownLoad StartThread(5 child thread)
DROP_URL *pDropUrl=(DROP_URL*)lParam;
CString sTemp;
CString strFilePath="";
int nThreadNum;
//1 yes break recv
if(pDropUrl->nBreakRev==1)
{
strFilePath=pDropUrl->strFilePath;
nThreadNum=pDropUrl->nParentNum;
sTemp=pDropUrl->strRegPath;
}
else
{
strFilePath=pDropUrl->strFilePath;
//Set Thread End breakpoint BOOL Value and ParentNum
nThreadNum=++m_nNumber;
//Create Registry SubKey;
HKEY nhKeyRoot=HKEY_CURRENT_USER;
LPSTR nszKeyPath="Software\\BLeo2004\\DownLoad";
LPSTR nszSubKeyPath="Software\\BLeo2004\\DownLoad\\Down";
LPSTR nszDirKeyPath="Software\\BLeo2004\\Dir";
sTemp.Format("%s%d",nszSubKeyPath,nThreadNum);
m_DownRegistry.Open(nhKeyRoot,nszKeyPath);
m_DownRegistry.CreateKey(nhKeyRoot,(LPCTSTR)sTemp);
m_DownRegistry.Close();
//Write Down Number to registry "Dir"
m_DownRegistry.Open(nhKeyRoot,nszDirKeyPath);
m_DownRegistry.Write("Number",nThreadNum);
m_DownRegistry.Close();
}
m_stFileDlgInfo.strRegSubPath=sTemp;
m_stFileDlgInfo.nSocketLinkNum=m_nAgainNumber; //10
m_stFileDlgInfo.nPID=nThreadNum; //Begin 1
m_stFileDlgInfo.pMainFrame=this;
m_stFileDlgInfo.strLocationUrl=pDropUrl->strLocatinUrl;
m_stFileDlgInfo.strFilePath=pDropUrl->strFilePath;
m_stFileDlgInfo.strComment=pDropUrl->strComment;
m_stFileDlgInfo.nBreakRev=pDropUrl->nBreakRev;
m_stFileDlgInfo.nImage=1;
m_stFileDlgInfo.bRename=pDropUrl->bRename;
CRect rect;
GetClientRect(&rect);
m_stThreadNumber[m_nPID].nPID=m_nPID;
CHttpDownLoad *pHttpDownLoad;
if(!m_HttpDLPtr.Lookup(&m_stThreadNumber[m_nPID],(void*&)pHttpDownLoad))
{
pHttpDownLoad=new CHttpDownLoad(&m_stFileDlgInfo);
pHttpDownLoad->Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rect,this,(UINT)m_nPID);
m_HttpDLPtr.SetAt(&m_stThreadNumber[m_nPID],pHttpDownLoad);
m_nPID++;
}
AfxBeginThread(StartHttpDownLoad,(void*)pHttpDownLoad);
BTOOLTEXT stToolText;
stToolText.strText=strFilePath;
stToolText.strText+="[0%]";
stToolText.iItem=nThreadNum-1;
m_ToolTipArray.Add(stToolText);
int nCount=m_ToolTipArray.GetSize();
m_strToolTip="";
for(int i=1;i<nCount;i++)
{
stToolText=m_ToolTipArray.GetAt(i);
m_strToolTip+=stToolText.strText;
m_strToolTip+="\n";
}
m_strToolTip=m_strToolTip.Left(m_strToolTip.GetLength()-1);
}
void CMainFrame::OnDropwinTool()
{
// TODO: Add your command handler code here
DOWN_PARAM stDownParam;
stDownParam.strPathName=m_SavePath;
stDownParam.nAgainNumber=m_nAgainNumber;
stDownParam.bRename=m_bRename;
stDownParam.pMainWnd=this;
CDownParamPage pDownPage((void*)&stDownParam);
CDownParamSheet pDownSheet("下载默认设置-Leo",NULL,0);
pDownSheet.AddPage(&pDownPage);
pDownSheet.DoModal();
}
void CMainFrame::OnDownParamPage(WPARAM wParam,LPARAM lParam)
{
DOWN_PARAM *pDownParam=(DOWN_PARAM*)lParam;
m_SavePath=pDownParam->strPathName;
m_nAgainNumber=pDownParam->nAgainNumber;
m_bRename=pDownParam->bRename;
CFileFind pFind;
if(!pFind.FindFile((LPCTSTR)m_SavePath))
::CreateDirectory((LPCTSTR)m_SavePath,NULL);
pFind.Close();
HKEY nhKeyRoot=HKEY_CURRENT_USER;
LPSTR nszProgramePath="Software\\BLeo2004\\Dir";
m_DownRegistry.Open(nhKeyRoot,nszProgramePath);
m_DownRegistry.Write("DownLoadDir",(LPCTSTR)m_SavePath);
m_DownRegistry.Write("AgainNumber",m_nAgainNumber);
m_DownRegistry.Write("Rename",m_bRename);
m_DownRegistry.Close();
}
//*********Set Break point Recv***********
void CMainFrame::OnDownStartBreak(WPARAM wParam,LPARAM lParam)
{
DOWN_STARTBREAK *stDownBreak=(DOWN_STARTBREAK*)lParam;
int i=stDownBreak->nParentNum;
DROP_URL pDropUrl;
pDropUrl.nBreakRev=stDownBreak->nBreakRcv; //1 yes or 0 no
pDropUrl.pMainWnd=this;
pDropUrl.strComment=stDownBreak->strComment;
pDropUrl.strFilePath=stDownBreak->strFilePath;
pDropUrl.strLocatinUrl=stDownBreak->strLocationUrl;
pDropUrl.nParentNum=i; //ParentNum
pDropUrl.strRegPath=stDownBreak->strRegSubPath; //RegPath
OnDownAddJobPage(0,(LPARAM)&pDropUrl);
}
void CMainFrame::OnDownStopBreak(WPARAM wParam,LPARAM lParam)
{
if(m_nThreadNumber>0)
{
m_nThreadNumber--; //!!!
DOWN_STOPBREAK *pDownStop=(DOWN_STOPBREAK*)lParam;
int nPID=pDownStop->nPID;
CHttpDownLoad *pHttpDownLoad;
THREADNUMBER *stThreadNumber;
for(POSITION pos=m_HttpDLPtr.GetStartPosition();pos!=NULL;)
{
m_HttpDLPtr.GetNextAssoc(pos,(void*&)stThreadNumber,(void*&)pHttpDownLoad);
int iPID=pHttpDownLoad->m_stLeoDownInfo.nPID;
if(nPID==iPID && !(pHttpDownLoad->m_bIsEndThe))
{
//pHttpDownLoad->SetThreadEnd(TRUE);
pHttpDownLoad->m_bIsEndThe=TRUE;
if(pHttpDownLoad->m_bIsAfxBegin5Thread0)
{
TerminateThread(pHttpDownLoad->m_MulHand[0],0);
//CloseHandle(pHttpDownLoad->m_MulHand[0]);
}
if(pHttpDownLoad->m_bIsAfxBegin5Thread1)
{
TerminateThread(pHttpDownLoad->m_MulHand[1],0);
//CloseHandle(pHttpDownLoad->m_MulHand[1]);
}
if(pHttpDownLoad->m_bIsAfxBegin5Thread2)
{
TerminateThread(pHttpDownLoad->m_MulHand[2],0);
//CloseHandle(pHttpDownLoad->m_MulHand[2]);
}
if(pHttpDownLoad->m_bIsAfxBegin5Thread3)
{
TerminateThread(pHttpDownLoad->m_MulHand[3],0);
//CloseHandle(pHttpDownLoad->m_MulHand[3]);
}
if(pHttpDownLoad->m_bIsAfxBegin5Thread4)
{
TerminateThread(pHttpDownLoad->m_MulHand[4],0);
//CloseHandle(pHttpDownLoad->m_MulHand[4]);
}
break;
}
}
BTOOLTEXT stToolText;
int nCount=m_ToolTipArray.GetSize();
int iItem=nPID-1;
for(int i=1;i<nCount;i++)
{
stToolText=m_ToolTipArray.GetAt(i);
if(iItem==stToolText.iItem)
{
m_ToolTipArray.RemoveAt(i);
break;
}
}
m_strToolTip="";
nCount=m_ToolTipArray.GetSize();
if(nCount==1)
{
m_strToolTip="Leo";
m_DropWin->KillTimerPaint(0);
}
else
{
for(i=1;i<nCount;i++)
{
stToolText=m_ToolTipArray.GetAt(i);
m_strToolTip+=stToolText.strText;
m_strToolTip+="\n";
}
m_strToolTip=m_strToolTip.Left(m_strToolTip.GetLength()-1);
}
//stToolText.strText=m_strToolTip;
//::SendMessage(m_DropWin->m_pDropView->GetSafeHwnd(),WM_BTOOLEXTENTCX,0,(LPARAM)&stToolText);
}
}
void CMainFrame::OnDownDelA(WPARAM wParam,LPARAM lParam)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -