📄 mainfrm.cpp
字号:
*/
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 + -