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

📄 mainfrm.cpp

📁 类似vc的集成开发环境
💻 CPP
📖 第 1 页 / 共 4 页
字号:
*/
void CMainFrame::OnFileSaveAs() 
{
    CString Filter;
    Filter =  "All Source files (*.c, *.cpp, *.h *.hpp, "
                " *.rc)|*.c;*.cpp;*.h;*.hpp;*.rc|";
    Filter += "Header Files (*.h;*.hpp)|*.h;*.hpp|";
    Filter += "Source Files (*.c;*.cpp)|*.c;*.cpp|";
    Filter += "Resource Files (*.rc)|*.rc|";
    Filter += "Text Files (*.txt)|*.txt|";
 //  Filter += "All Files (*.*)|*.*||";
    CFileDialog	cfd(false, NULL, NULL, OFN_HIDEREADONLY |
                            OFN_OVERWRITEPROMPT, Filter);
    if (cfd.DoModal () == IDCANCEL)
        return;
 //   GetDocument()->OnSaveDocument (cfd.m_ofn.lpstrFile);
//    GetDocument()->SetPathName(cfd.m_ofn.lpstrFile, TRUE);
}


void CMainFrame::OnUpdateBuildBuild(CCmdUI* pCmdUI) 
{
	

	pCmdUI->Enable(true); 

	
	// TODO: Add your command update UI handler code here
	
}

 void CMainFrame::OnWizbarActions()
 {
	 ProjectList* m_pcurproget;
     m_pcurproget=new ProjectList;
     m_pcurproget=(ProjectList *)projectinfo.GetAt(0);	

   
//	 FileList* m_pfile=NULL;
//	m_pfile=new FileList;

   int n_filenum=m_pcurproget->proinfstru.GetSize();

   if(n_filenum>0)
   {
	CMyProPertySheet pd ("Function Wizard");
	pd.DoModal ();
   }
   

 }
 void CMainFrame::OnUpdateWizbarActions(CCmdUI* pCmdUI)
 {

 }

void CMainFrame::OnWizbarClass() 
{
	// TODO: Add your command handler code here
	
}

void CMainFrame::OnUpdateWizbarClass(CCmdUI* pCmdUI) 
{
		pCmdUI->Enable(true); 
	// TODO: Add your command update UI handler code here
	
}

void CMainFrame::OnAppAbout() 
{
	// TODO: Add your command handler code here
	
}

void CMainFrame::OnAbout() 
{

	// TODO: Add your command handler code here
	
}


/*
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CFrameWnd::OnCreateClient(lpcs, pContext);
}
*/

void CMainFrame::OnSelendOkCombo() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox(_T("Selection Made..."));



}


CRect CMainFrame::GetDialogBarItemRect(UINT nID) const
{
	CWnd* pItemWnd = m_wndDlgBar.GetDlgItem(nID);
//	ASSERT_VALID(pItemWnd);

	if (pItemWnd != NULL)
	{
		CRect rect;
		pItemWnd->GetWindowRect(&rect);
		m_wndDlgBar.ScreenToClient(&rect);
		return rect;
	}

  //  CRect rect;
//	if(!(&m_wndDlgBar).GetChildRect(&rect))
//return rect;
	return CRect(0,0,0,0);
}

/*
void CMainFrame::OnSearchFind() 
{
	DoSearchReplaceDlg (true);
}

void CMainFrame::OnSearchReplace() 
{
	DoSearchReplaceDlg (false);
}

void CMainFrame::OnSearchFindnext() 
{
	CC02IDEView *view = (CC02IDEView *) GetActiveFrame()->GetActiveView ();
	m_fr.lpstrFindWhat = (char *)(LPCSTR) m_strFind;
	m_fr.lpstrReplaceWith = (char *)(LPCSTR) m_strReplace;
	view->DoFindText (m_fr);
}

void CMainFrame::DoSearchReplaceDlg(bool bSearch)
{
	if (m_fd != NULL)
	{
		m_fd->SetFocus ();
		return;
	}
	m_fd = new CFindReplaceDialog;
	CView *cview = GetActiveView ();
	CC02IDEView *view = (CC02IDEView *) GetActiveFrame()->GetActiveView ();
	CString strFind;
	strFind.Empty ();
	view->GetCurrentSelection (strFind);
	m_fd->m_fr.Flags |= FR_HIDEWHOLEWORD;
	m_fd->m_fr.hwndOwner = this->m_hWnd;
	m_fd->m_fr.lpstrFindWhat = (char *)(LPCSTR) strFind;
	m_fd->Create (bSearch, NULL, NULL, FR_DOWN, this);
	memcpy (&m_fr, &m_fd->m_fr, sizeof (FINDREPLACE));
}

LONG CMainFrame::OnFindReplace(UINT wParam, LONG lParam)
{
	FINDREPLACE &fr = *((FINDREPLACE *) lParam);

	memcpy (&m_fr, &fr, sizeof (FINDREPLACE));
	m_strFind = fr.lpstrFindWhat;
	m_strReplace = fr.lpstrReplaceWith;

	CC02IDEView *view = (CC02IDEView *) GetActiveFrame()->GetActiveView ();
	if (m_fd->IsTerminating ())
	{
		m_fd = NULL;
		return (0);
	}
	if (fr.Flags & FR_FINDNEXT)
	{
		view->DoFindText (fr);
	}
	if (fr.Flags & (FR_REPLACE | FR_REPLACEALL))
	{
		view->DoReplaceText (fr);
	}
	return (0);
}

void CMainFrame::OnUpdateSearchFindnext(CCmdUI* pCmdUI) 
{
	bool bEnable = false;
	if ((m_fr.lpstrFindWhat != NULL) && strlen (m_fr.lpstrFindWhat))
		bEnable = true;
	pCmdUI->Enable (bEnable ? TRUE : FALSE);
}


void CMainFrame::OnViewFullScreen() 
{
	if(m_bFullScreenMode)
		FullScreenModeOff();
	else FullScreenModeOn();
}

void CMainFrame::OnUpdateViewFullScreen(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(m_bFullScreenMode);	
}

void CMainFrame::FullScreenModeOn()
{
	CMDIChildWnd* pChild=MDIGetActive();
	if(!pChild) return;
	m_bToolBarWasVisible=(m_wndToolBar.IsWindowVisible()!=0);
	m_wndToolBar.ShowWindow(SW_HIDE);
	m_bFormatBarWasVisible=(m_wndFormatBar.IsWindowVisible()!=0);
	m_wndFormatBar.ShowWindow(SW_HIDE);
	m_bStatusBarWasVisible=(m_wndStatusBar.IsWindowVisible()!=0);
	m_wndStatusBar.ShowWindow(SW_HIDE);

	m_pwndFullScreenBar=new CToolBar;
	m_pwndFullScreenBar->Create(this);
	m_pwndFullScreenBar->LoadToolBar(IDR_FULLSCREEN);
	m_pwndFullScreenBar->SetBarStyle(m_pwndFullScreenBar->GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);

	m_pwndFullScreenBar->ModifyStyle(0, TBSTYLE_FLAT);
	m_pwndFullScreenBar->EnableDocking(0);

	CPoint pt(300,200);
	FloatControlBar(m_pwndFullScreenBar,pt);
	
	GetWindowRect(&m_mainRect);

	LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
	style&=~WS_CAPTION;
	::SetWindowLong(m_hWnd,GWL_STYLE,style);
	int screenx=GetSystemMetrics(SM_CXSCREEN);
	int screeny=GetSystemMetrics(SM_CYSCREEN);

	SetWindowPos(NULL,-4,-4,screenx+8,screeny+8,SWP_NOZORDER);
	style=::GetWindowLong(pChild->m_hWnd,GWL_STYLE);
	m_bChildMax=(style & WS_MAXIMIZE)?true:false;

	pChild->ShowWindow(SW_SHOWMAXIMIZED);
	RecalcLayout();
	m_bFullScreenMode=true;

}

void CMainFrame::FullScreenModeOff()
{
	delete m_pwndFullScreenBar;
	LONG style=::GetWindowLong(m_hWnd,GWL_STYLE);
	style|=WS_CAPTION;
	::SetWindowLong(m_hWnd,GWL_STYLE,style);
	if(m_bToolBarWasVisible)
		m_wndToolBar.ShowWindow(SW_SHOW);
	if(m_bFormatBarWasVisible)
		m_wndFormatBar.ShowWindow(SW_SHOW);
	if(m_bStatusBarWasVisible)
		m_wndStatusBar.ShowWindow(SW_SHOW);
	MoveWindow(&m_mainRect);
	RecalcLayout();
	CMDIChildWnd* pChild=MDIGetActive();

	if(pChild){
		if(m_bChildMax)
			MDIMaximize(pChild);
		else MDIRestore(pChild);
	}
	m_bFullScreenMode=false;
}
*/
void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
  
         

  CMDIFrameWnd::OnUpdateFrameTitle(bAddToTitle);
  
    
	    
  m_wndMDITabs.Update();
/* 	
    CWnd* Wnd = AfxGetMainWnd();
    Wnd->SendMessage(WM_COMMAND, ID_NEWFILE, 0);
*/
}
/*
void CMainFrame::OnTermWait() 
{
	// TODO: Add your command handler code here
	
	STARTUPINFO StartupInfo={0}; 
PROCESS_INFORMATION ProcessInfo; 

StartupInfo.cb=sizeof(STARTUPINFO); 

if(CreateProcess(NULL,"Edit",NULL,NULL,FALSE, 
0,NULL,NULL,&StartupInfo,&ProcessInfo)) 
{ 
WaitForSingleObject(ProcessInfo.hProcess,INFINITE); 
 //MessageBox("Application is done","Information",MB_OK│MB_ICONINFORMATION); 
//AfxMessageBox();
} 
else 
//MessageBox("Unable to run Application!","Error",MB_OK│MB_ICONSTOP); 

AfxMessageBox(IDS_BIGINGWORPAD);
}
*/
void CMainFrame::InsertPre()
{
    	CString strAllSynWord;
	typearray.RemoveAll();
	
    strAllSynWord = _T(" int,void,long,");

	CString strTemp;
	int nPosPrior = 0;
	int nPos;	

	nPos = strAllSynWord.Find(_T(","), nPosPrior);
	while(nPos!=-1)
	{
		strTemp = strAllSynWord.Mid(nPosPrior+1 , nPos - nPosPrior - 1);
		typearray.Add(strTemp);
		
		nPosPrior = nPos;
		nPos = strAllSynWord.Find(_T(","),  nPosPrior + 1);			
	}
 
}



BOOL   CMainFrame::IsC02Key(CString str_test)
{
	 int typesize=0;
	 typesize=typearray.GetSize();

	 CString typekey;
	 for(int i=0;i<typesize;i++)
		{
	   
         typekey=typearray.GetAt(i);
          
         if(str_test.Compare(typekey)==0)
		  {
            return TRUE;
   
		  }
   
		}
	 return FALSE;

}

int  CMainFrame::IsOneTab(CString str_test,int n_tab,int n_lkh)
{
	int n_tabnum=0;
	int n_namelocate=0;
	for(int j=n_tab;j<n_lkh;j++)
		{  
			 CString stringmidf=str_test.Mid(j,1);
             CString stringmidn=str_test.Mid(j+1,1);
             if ((stringmidf.Compare(" ")==0)&&(stringmidn.Compare(" "))!=0)
			{
				n_tabnum=n_tabnum+1;
				n_namelocate=j+1;
			}
		}
	if(n_tabnum==0||n_tabnum>=2)
		return -1;
	else
		return n_namelocate;

}

int  CMainFrame::IsShengming(CString str_key,CString str_test)
{

//		AfxMessageBox(str_test);
	 str_test.TrimLeft();			  
	 str_test.TrimRight();	
	 //左括号
	 int leftkh=str_test.Find('(');
	 if(leftkh==-1)
		 return 0;
	 int keylength=str_key.GetLength();
 	 CString str_front=str_test.Left(keylength);
	 if(str_front.Compare(str_key)!=0)
		 return 0;
	 CString str_khnext=str_test.Mid(keylength,1);
	 if(str_khnext.Compare(" ")!=0)
		 return 0;
	 //统计空格
	 int n_funcpl=IsOneTab(str_test,keylength,leftkh);
     if(n_funcpl==-1)
		 return 0;
	 str_funcnametest=str_test.Mid(n_funcpl,leftkh-n_funcpl);

//	 if(str_funcnametest.

	 int stringlength=str_test.GetLength();
	 CString lastchar=str_test.Right(1);
	 CString lastcharpre=str_test.Mid((str_test.GetLength())-2,1);
//	AfxMessageBox(str_test);
//	AfxMessageBox(lastchar);
	 if(lastchar.Compare(";")==0&&lastcharpre.Compare(")")==0)
		 return 1;
	 else 
	 {
//	AfxMessageBox("ti true");
//	b_havesheng=HaveShengming(str_funcnametest);
		 if(lastchar.Compare(")")==0)//&&b_havesheng==TRUE)
			 return 2;
		 else 
			 return 0;

	 }


//			  BOOL isonetab;

}
void CMainFrame::InsertToTree()
{
//	AfxMessageBox("insert to tree");
   

	CString str_getkey=currentkey;
//		AfxMessageBox("4");
	CString str_getstring=currentstring;
//		AfxMessageBox("5");
	int n_getline=currentline;	

	int n_shengming=IsShengming(str_getkey,str_getstring);
//	AfxMessageBox("8");
	if(str_funcnametest.GetLength()==0||str_funcnametest=="")
		return;
//		AfxMessageBox("9");
	if(n_shengming==1)

	{
//			AfxMessageBox("10");
 // AfxMessageBox("shengming");
		UpDateFuncInfo(str_funcnametest,n_getline,TRUE);
//		str_laststring=str_getstring;
//		lastline=n_getline;
		
		
	}
	if(n_shengming==2)
	{
//			AfxMessageBox("ti");
		UpDateFuncInfo(str_funcnametest,n_getline,FALSE);
//		str_laststring=str_getstring;
//		lastline=n_getline;
//		AfxMessageBox("ti");


	}

	return;


}
   

void CMainFrame::UpDateFuncInfo(CString str_name,int lineno,BOOL b_shengming)
{
	
	if(b_shengming==TRUE)
	{


//		if(b_haveshengming==FALSE)
//		{
//		AfxMessageBox("add to shengming");
		FuncStruct * m_pcurfunc=NULL;
		m_pcurfunc=new FuncStruct;

		m_pcurfunc->str_funcname=str_name;
		m_pcurfunc->n_shengming=lineno;
		m_pcurfunc->n_dingyi=0;
		m_pfile->funcinfstru.InsertAt(n_funcnumber,(CObject*)m_pcurfunc);
 

		n_funcnumber++;
//			 m_pcurfunc=(FuncStruct *)m_pfile->funcinfstru.GetAt(0);

//		int n_jfunc=m_pfile->funcinfstru.GetSize();

//  	 	struct FuncStruct * m_ptestfunc;
//		m_ptestfunc=new	FuncStruct;
//		int nfunc=m_pfile->funcinfstru.GetSize();
//		CString str_testfunc="";
//		for(int k=0;k<=nfunc-1;k++)
//		{

//					m_ptestfunc=(FuncStruct *)m_pfile->funcinfstru.GetAt(0);
//					str_testfunc=m_ptestfunc->str_funcname;
//					str_curfunc="test";

		//			AfxMessageBox(str_testfunc);
		
//		}

		


	}
//	if(b_shengming==FALSE)
   else
	{

//		if(b_havesheng==TRUE)
//		{
	   	BOOL b_haveshengming=HaveShengming(str_name);
		FuncStruct * m_ptifunc=NULL;
		m_ptifunc=new FuncStruct;
        int n_func=m_pfile->funcinfstru.GetSize();
//		if(n_funcnumber>=n_func)
//			return;
		int n_no=0;
		for (n_no=0;n_no<n_func;n_no++)
		{
			m_ptifunc=(FuncStruct *)m_pfile->funcinfstru.GetAt(n_no);
			if(m_ptifunc->str_funcname==str_name)
			
			{

		
//		m_ptifunc=(FuncStruct *)m_pfile->funcinfstru.GetAt(n_no);
       

		m_ptifunc->n_dingyi=lineno;

		break;
			}
		
		}
		return;
   }
	

   return;

}

BOOL CMainFrame::HaveShengming(CString str_test)
{
//	CCJMDIFrameWnd *pFrame = (CCJMDIFrameWnd*)AfxGetApp()->m_pMainWnd;	
//	CCJMDIChildWnd *pChild = (CCJMDIChildWnd *) pFrame->GetActiveFrame();	
    
//	ProjectList * m_pnowpro=NULL;
//	m_pnowpro=new ProjectList;
//	m_pnowpro=(ProjectList *)projectinfo.GetAt(0);


//	int n_filenum=curpro->proinfstru.GetSize();
	
//	FileList * m_ptestfile;
//    m_ptestfile=new FileList;
//	for(int i=0;i<=n_filenum-1;i++)
//	{
//		m_ptestfile=(FileList *)m_pnowpro->proinfstru.GetAt(n_filenumber);

//		if(m_ptestfile->m_pChildWnd=pChild)
//		{

⌨️ 快捷键说明

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