www.gusucode.com > 一个VC++语法分析模块程序实例源码程序 > 一个VC++语法分析模块程序实例/CompileSys/CompileSys/IDE/SetDlg.cpp
// SetDlg.cpp : implementation file // #include "stdafx.h" #include "ide.h" #include "SetDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSetDlg dialog CSetDlg::CSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CSetDlg) m_strCompileProgName = _T("PL.exe"); //}}AFX_DATA_INIT m_bitmapOk.LoadBitmap(IDB_OK); m_bitmapCancel.LoadBitmap(IDB_CANCEL); m_hIcon=AfxGetApp()->LoadIcon(IDI_SET); } void CSetDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSetDlg) DDX_Control(pDX, IDOK, m_btnOK); DDX_Control(pDX, IDCANCEL, m_btnCancel); DDX_Text(pDX, IDC_EDIT_COMPILEPROG, m_strCompileProgName); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CSetDlg, CDialog) //{{AFX_MSG_MAP(CSetDlg) ON_BN_CLICKED(IDC_BTN_BROWSE, OnBtnBrowse) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSetDlg message handlers void CSetDlg::OnBtnBrowse() { // TODO: Add your control notification handler code here CFileDialog fileDlg(0,0,0,0,"可执行文件(*.exe)|*.exe|",this); if(fileDlg.DoModal()!=IDOK) return; m_strCompileProgName=fileDlg.GetPathName(); UpdateData(0); } BOOL CSetDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here SetIcon(m_hIcon,1); m_btnOK.SetBitmap(m_bitmapOk); m_btnCancel.SetBitmap(m_bitmapCancel); m_strCompileProgNameBU=m_strCompileProgName; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CSetDlg::OnOK() { // TODO: Add extra validation here UpdateData(1); if(GetFileAttributes(m_strCompileProgName)==-1) { MessageBox("分析器不存在,请重新输入其路径","提示",MB_ICONWARNING); m_strCompileProgName=m_strCompileProgNameBU; return; } CDialog::OnOK(); }