📄 newdlg.cpp
字号:
// NewDlg.cpp : implementation file
//
#include "stdafx.h"
#include "cff.h"
#include "NewDlg.h"
#include "ChooseDirDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNewDlg dialog
CNewDlg::CNewDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNewDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CNewDlg)
m_address = _T("");
m_name = _T("");
m_filename = _T("");
//}}AFX_DATA_INIT
m_tabstate=0;
m_postfix=_T("");
}
void CNewDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNewDlg)
DDX_Control(pDX, IDC_RGNLIST, m_rgnlist);
DDX_Control(pDX, IDC_FILELIST, m_filelist);
DDX_Control(pDX, IDC_DOCLIST, m_doclist);
DDX_Control(pDX, IDC_TAB, m_tab);
DDX_Control(pDX, IDC_PROGRAMLIST, m_worklist);
DDX_Text(pDX, IDC_PROGRAMADDRESS, m_address);
DDX_Text(pDX, IDC_PROGRAMNAME, m_name);
DDX_Text(pDX, IDC_FILENAME, m_filename);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNewDlg, CDialog)
//{{AFX_MSG_MAP(CNewDlg)
ON_BN_CLICKED(IDC_OK, OnOk)
ON_BN_CLICKED(IDC_PROGRAMLOOK, OnProgramlook)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB, OnSelchangeTab)
ON_NOTIFY(NM_CLICK, IDC_PROGRAMLIST, OnClickProgramlist)
ON_BN_CLICKED(IDC_CANCEL, OnCancel)
ON_NOTIFY(NM_CLICK, IDC_RGNLIST, OnClickRgnlist)
ON_NOTIFY(NM_CLICK, IDC_DOCLIST, OnClickDoclist)
ON_NOTIFY(NM_CLICK, IDC_FILELIST, OnClickFilelist)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNewDlg message handlers
void CNewDlg::OnOk()
{
// TODO: Add your control notification handler code here
//CDialog::OnCancel();
UpdateData();
if(m_filename.IsEmpty())
{
MessageBox("请输入文件名!");
return;
}
if(m_postfix.IsEmpty())
{
MessageBox("请选择文件类型!");
return;
}
if(m_name.IsEmpty())
{
MessageBox("请创建工程!");
return;
}
theApp.m_WorkName=m_name;
CString temp=m_address+m_name;
_mkdir(temp);
temp+="\\";
filename.Empty();
filename=temp+m_filename;
filename+=m_postfix;
theApp.m_Path=temp;
theApp.m_CurFileName.Format("%s%s",m_filename,m_postfix);
CDialog::OnOK();
}
void CNewDlg::OnCancel()
{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
void CNewDlg::OnProgramlook()
{
// TODO: Add your control notification handler code here
CChooseDirDlg dlg;
if(dlg.DoModal()==IDOK)
{
m_address.Empty();
m_address=dlg.m_directory;
UpdateData(false);
}
else
return;
}
BOOL CNewDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_imageList.Create(16, 15, TRUE|ILC_COLORDDB|ILC_COLOR16, 7, 0);
HICON hIcon = NULL;
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_WORK), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_WORKDLL), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_WORKEXE), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_DOC), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_HEAD), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_WORKRGN), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_CFFTYPE), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME), IMAGE_ICON, 16, 15, 0);
m_imageList.Add(hIcon);
// TODO: Add extra initialization here
m_tab.InsertItem(0,"工程");
m_tab.InsertItem(1,"文件");
m_tab.InsertItem(2,"工作区");
m_tab.InsertItem(3,"其他文档");
m_worklist.SetImageList(&m_imageList,LVSIL_SMALL);
m_worklist.InsertItem(0,"AppWizard(.exe)",2);
m_worklist.InsertItem(1,"AppWizard(.dll)",1);
m_worklist.InsertItem(2,"Project",0);
m_filelist.SetImageList(&m_imageList,LVSIL_SMALL);
m_filelist.InsertItem(0,"f/f++ Header File",4);
m_filelist.InsertItem(1,"f++ Source File",3);
m_rgnlist.SetImageList(&m_imageList,LVSIL_SMALL);
m_rgnlist.InsertItem(0,"Work Region",5);
m_doclist.SetImageList(&m_imageList,LVSIL_SMALL);
m_doclist.InsertItem(0,"Docment File",6);
m_doclist.InsertItem(1,"EXE File",7);
switch(m_tabstate)
{
case 0:
m_tab.SetCurSel(0);
m_worklist.ShowWindow(SW_SHOW);
m_filelist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 1:
m_tab.SetCurSel(1);
m_filelist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 2:
m_tab.SetCurSel(2);
m_rgnlist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_filelist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 3:
m_tab.SetCurSel(3);
m_doclist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_filelist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
break;
}
//char exeFullPath[MAX_PATH];
//GetModuleFileName(NULL,exeFullPath,MAX_PATH);//获得当前应用程序路径
CWinApp* pApp = AfxGetApp();
CString strPath=_T("");
strPath = pApp->GetProfileString("Work Directory", "Path");
if(!strPath.IsEmpty())
m_address=strPath;
else
{
char buffer[_MAX_PATH];
/* Get the current working directory: */
_getcwd( buffer, _MAX_PATH );
m_address.Format(buffer);
m_address+="\\";
pApp->WriteProfileString("Work Directory", "Path", m_address);
}
m_name=theApp.m_WorkName;
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CNewDlg::OnSelchangeTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel=m_tab.GetCurSel();
switch(sel)
{
case 0:
m_worklist.ShowWindow(SW_SHOW);
m_filelist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 1:
m_filelist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 2:
m_rgnlist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_filelist.ShowWindow(SW_HIDE);
m_doclist.ShowWindow(SW_HIDE);
break;
case 3:
m_doclist.ShowWindow(SW_SHOW);
m_worklist.ShowWindow(SW_HIDE);
m_filelist.ShowWindow(SW_HIDE);
m_rgnlist.ShowWindow(SW_HIDE);
break;
}
*pResult = 0;
}
void CNewDlg::OnClickProgramlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel=m_worklist.GetSelectionMark();
switch(sel)
{
case 0:
m_postfix.Empty();
m_postfix=".exe";
break;
case 1:
m_postfix.Empty();
m_postfix=".dll";
break;
case 2:
m_postfix.Empty();
m_postfix=".prg";
break;
}
// MessageBox(m_postfix);
*pResult = 0;
}
void CNewDlg::OnClickRgnlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel=m_rgnlist.GetSelectionMark();
switch(sel)
{
case 0:
m_postfix.Empty();
m_postfix=".dsw";
break;
}
// MessageBox(m_postfix);
*pResult = 0;
}
void CNewDlg::OnClickDoclist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel=m_doclist.GetSelectionMark();
switch(sel)
{
case 0:
m_postfix.Empty();
m_postfix=".doc";
break;
case 1:
m_postfix.Empty();
m_postfix=".exe";
break;
}
// MessageBox(m_postfix);
*pResult = 0;
}
void CNewDlg::OnClickFilelist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int sel=m_filelist.GetSelectionMark();
switch(sel)
{
case 0:
m_postfix.Empty();
m_postfix=".f";
break;
case 1:
m_postfix.Empty();
m_postfix=".cff";
break;
}
// MessageBox(m_postfix);
*pResult = 0;
}
void CNewDlg::SetTabState(int state)
{
m_tabstate=state;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -