newprojectpage.cpp
来自「用bcg库编写的java IDE 源码」· C++ 代码 · 共 214 行
CPP
214 行
// NewProjectPage.cpp : implementation file
//
#include "stdafx.h"
#include "NewProjectPage.h"
#include "FileNewDlg.h"
#include "VisualJava.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNewProjectPage property page
void PASCAL DDV_Dir(CDataExchange* pDX, LPCTSTR szpDir, BOOL bFuture)
{
if(pDX->m_bSaveAndValidate)
{
}
}
IMPLEMENT_DYNCREATE(CNewProjectPage, CPropertyPage)
CNewProjectPage::CNewProjectPage() : CPropertyPage(CNewProjectPage::IDD)
{
//{{AFX_DATA_INIT(CNewProjectPage)
// m_szpProjectPath = _T("C:\\My Documents\\");
m_szpProjectName = _T("");
//}}AFX_DATA_INIT
m_bCreateWorkSpc = TRUE;
}
CNewProjectPage::~CNewProjectPage()
{
}
void CNewProjectPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNewProjectPage)
DDX_Control(pDX, IDC_LIST_PROJECT_OPTIONS, m_wndProjectOptions);
DDX_Text(pDX, IDC_EDIT_PROJECT_DIR, m_szpProjectPath);
DDX_Text(pDX, IDC_EDIT_PROJECT_NAME, m_szpProjectName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNewProjectPage, CPropertyPage)
//{{AFX_MSG_MAP(CNewProjectPage)
ON_BN_CLICKED(IDC_BROWSE_TO, OnBrowseTo)
ON_NOTIFY(NM_CLICK, IDC_LIST_PROJECT_OPTIONS, OnClickProjList)
ON_BN_CLICKED(IDC_NEXT_BUTTON, OnNext)
ON_BN_CLICKED(IDC_ADDTOWORKSPC_RADIO,OnAddToCurWorkSpc)
ON_BN_CLICKED(IDC_CREATE_NEW_WORKSPC_RADIO,OnCreateNewWorkSpc)
ON_EN_CHANGE(IDC_EDIT_PROJECT_NAME,OnEditName)
ON_EN_CHANGE(IDC_EDIT_PROJECT_DIR,OnEditDir)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNewProjectPage message handlers
BOOL CNewProjectPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_projectOptionsImgs.Create(IDB_PROJECT_OPTIONS,16,1,RGB(255,0,0));
m_wndProjectOptions.SetImageList(&m_projectOptionsImgs,LVSIL_SMALL);
//project options
m_wndProjectOptions.InsertItem(0,"Abstract Windows Toolkit Application",0);
//m_wndProjectOptions.InsertItem(1,"Console Application",1);
m_wndProjectOptions.InsertItem(2,"Java Swing Application",2);
m_wndProjectOptions.InsertItem(LVIF_TEXT|LVIF_STATE|LVIF_IMAGE,
1, "Console Application",LVIS_SELECTED,LVIS_SELECTED,1, 0);
/*
LVITEM lv;
lv.mask = LVIF_STATE|LVIF_IMAGE|LVIF_TEXT;
lv.iItem = 1;
lv.iImage = 1;
lv.pszText = "Console Application";
lv.state = LVIS_SELECTED;
m_wndProjectOptions.InsertItem(&lv);
*/
if(CVisualJavaApp::m_pCurWorkSpace != NULL)
{
CButton *pButton =(CButton*)GetDlgItem(IDC_CREATE_NEW_WORKSPC_RADIO);
pButton->SetCheck(BST_CHECKED);
}
else
{
GetDlgItem(IDC_ADDTOWORKSPC_RADIO)->EnableWindow(FALSE);
CButton *pButton =(CButton*)GetDlgItem(IDC_CREATE_NEW_WORKSPC_RADIO);
pButton->SetCheck(BST_CHECKED);
}
m_szpProjectPath = _T("C:\\My Documents\\");
UpdateData(FALSE);
m_szpBasePath = m_szpProjectPath;
m_wndBrowse.SubclassDlgItem(IDC_BROWSE_TO,this);
m_wndNext.SubclassDlgItem(IDC_NEXT_BUTTON,this);
return TRUE;
}
void CNewProjectPage::OnBrowseTo()
{
}
void CNewProjectPage::OnClickProjList(NMHDR* pNMHDR, LRESULT* pResult)
{
POSITION n = m_wndProjectOptions.GetFirstSelectedItemPosition( );
int i = m_wndProjectOptions.GetNextSelectedItem(n);
CString szpItem =
m_wndProjectOptions.GetItemText(i,0);
if(szpItem.Compare("Abstract Windows Toolkit Application") == 0)
{
GetDlgItem(IDC_NEXT_BUTTON)->ShowWindow(SW_SHOW);
}
else
if(szpItem.Compare("Java Swing Application") == 0)
{
GetDlgItem(IDC_NEXT_BUTTON)->ShowWindow(SW_SHOW);
}
else
if(GetDlgItem(IDC_NEXT_BUTTON)->IsWindowVisible())
GetDlgItem(IDC_NEXT_BUTTON)->ShowWindow(SW_HIDE);
m_nSel = i;
*pResult = 0;
}
void CNewProjectPage::OnNext()
{
CPropertySheet* psheet = (CPropertySheet*) GetParent();
//psheet->SetWizardButtons(PSWIZB_NEXT);
UpdateData(TRUE);
m_AppType.m_szpPath = m_szpProjectPath;
m_AppType.m_szpName = m_szpProjectName;
psheet->AddPage(&m_AppType);
psheet->SetActivePage(4);
}
BOOL CNewProjectPage::OnSetActive()
{
//if(!CPropertyPage::OnSetActive())return FALSE;
// CPropertySheet* psheet = (CPropertySheet*) GetParent();
//psheet->SetWizardMode();
//psheet->SetWizardButtons(PSWIZB_NEXT);
if(CFileNewDlg::m_pTemp != NULL)
{
CFileNewDlg* psheet = (CFileNewDlg*)GetParent();
psheet->RemovePage(CFileNewDlg::m_pTemp);
CFileNewDlg::m_pTemp = NULL;
}
return CPropertyPage::OnSetActive();
}
void CNewProjectPage::OnCreateNewWorkSpc()
{
m_bCreateWorkSpc = TRUE;
}
void CNewProjectPage::OnAddToCurWorkSpc()
{
m_bCreateWorkSpc = FALSE;
}
void CNewProjectPage::OnEditName()
{
UpdateData(TRUE);
if(!m_szpBasePath.IsEmpty())
{
if((m_szpBasePath[m_szpBasePath.GetLength()-1] != '\\'))
m_szpBasePath += '\\';
//put this here so we don't have the path growing exponentialy
m_szpProjectPath = m_szpBasePath;
}
else
{
m_szpProjectPath = '\\';
m_szpBasePath = '\\';
}
//concatenate new project name to base path
m_szpProjectPath += m_szpProjectName;
UpdateData(FALSE);
}
void CNewProjectPage::OnEditDir()
{
UpdateData(TRUE);
m_szpBasePath = m_szpProjectPath;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?