// EventEditView_Finish.cpp : 구현 파일입니다. // #include "stdafx.h" #include "EtActionTool.h" #include "EventEditView_Finish.h" #include "SignalManager.h" #include "GlobalValue.h" #include "UnionValueProperty.h" // CEventEditView_Finish IMPLEMENT_DYNCREATE(CEventEditView_Finish, CFormView) CEventEditView_Finish::CEventEditView_Finish() : CFormView(CEventEditView_Finish::IDD) , m_bCheckExport(FALSE) , m_szExportFileName("") { } CEventEditView_Finish::~CEventEditView_Finish() { } void CEventEditView_Finish::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); DDX_Check(pDX, IDC_CHECK1, m_bCheckExport); DDX_Text(pDX, IDC_EDIT1, m_szExportFileName); } BEGIN_MESSAGE_MAP(CEventEditView_Finish, CFormView) ON_BN_CLICKED(IDC_CHECK1, &CEventEditView_Finish::OnBnClickedCheck1) ON_BN_CLICKED(IDC_BUTTON1, &CEventEditView_Finish::OnBnClickedButton1) END_MESSAGE_MAP() // CEventEditView_Finish 진단입니다. #ifdef _DEBUG void CEventEditView_Finish::AssertValid() const { CFormView::AssertValid(); } #ifndef _WIN32_WCE void CEventEditView_Finish::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif #endif //_DEBUG // CEventEditView_Finish 메시지 처리기입니다. void CEventEditView_Finish::OnBnClickedCheck1() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. UpdateData(); GetDlgItem( IDC_EDIT1 )->EnableWindow( m_bCheckExport ); GetDlgItem( IDC_BUTTON1 )->EnableWindow( m_bCheckExport ); } void CEventEditView_Finish::PreProcess() { char szStr[2048] = { 0, }; GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "LastExportFullName", szStr, 2048 ); DWORD dwValue; GetRegistryNumber( HKEY_CURRENT_USER, REG_SUBKEY, "ExportHeader", dwValue ); m_szExportFileName = szStr; m_bCheckExport = ( dwValue == TRUE ); GetDlgItem( IDC_EDIT1 )->EnableWindow( m_bCheckExport ); GetDlgItem( IDC_BUTTON1 )->EnableWindow( m_bCheckExport ); UpdateData( FALSE ); } bool CEventEditView_Finish::PostProcess() { UpdateData(); if( m_bCheckExport == TRUE ) { if( m_szExportFileName.IsEmpty() ) { MessageBox( "익스포트 할 파일을 지정해주세요", "에러", MB_OK ); return false; } FILE *fp; fopen_s( &fp, m_szExportFileName, "wt" ); if( fp == NULL ) { MessageBox( "파일을 쓸 수 없습니다.", "에러", MB_OK ); return false; } fclose(fp); } switch( s_nStartType ) { case 0: CSignalManager::GetInstance().AddSignalItem( s_pCurrentSignalItem ); s_pCurrentSignalItem = NULL; break; case 1: { CSignalItem *pItem = CSignalManager::GetInstance().GetSignalItemFromName( s_szCurrentSignalName ); pItem->SetName( s_pCurrentSignalItem->GetName() ); pItem->SetInitialsColor( s_pCurrentSignalItem->GetInitialsColor() ); pItem->SetBackgroundColor( s_pCurrentSignalItem->GetBackgroundColor() ); pItem->SetHasLength( s_pCurrentSignalItem->IsHasLength() ); SAFE_DELETE( s_pCurrentSignalItem ); } break; case 2: CSignalManager::GetInstance().RemoveSignalItem( s_szCurrentSignalName ); break; case 3: if( s_pCurrentSignalItem->AddParameter( s_pCurrentPropertyVariable, true ) == false ) { SAFE_DELETE( s_pCurrentPropertyVariable ); MessageBox( "더이상 파라메터 추가를 할 수 없어요!!\n리빌드와 제저장이 필요해요!!", "에러", MB_OK ); } s_pCurrentSignalItem = NULL; s_pCurrentPropertyVariable = NULL; break; case 4: { CUnionValueProperty *pVariable = s_pCurrentSignalItem->GetParameterFromName( s_szCurrentPropertyName ); *pVariable = *s_pCurrentPropertyVariable; s_pCurrentSignalItem = NULL; SAFE_DELETE( s_pCurrentPropertyVariable ); } break; case 5: s_pCurrentSignalItem->RemoveParameter( s_szCurrentPropertyName ); break; } if( m_bCheckExport == TRUE ) { CSignalManager::GetInstance().ExportHeader( m_szExportFileName ); SetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "LastExportFullName", m_szExportFileName.GetBuffer() ); } SetRegistryNumber( HKEY_CURRENT_USER, REG_SUBKEY, "ExportHeader", (DWORD)m_bCheckExport ); return true; } void CEventEditView_Finish::OnBnClickedButton1() { // TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다. TCHAR szFilter[] = _T( "C/C++ Header File (*.h)|*.h|All Files (*.*)|*.*||" ); CFileDialog dlg( FALSE, _T("h"), _T("*.h"), OFN_HIDEREADONLY|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, this ); dlg.m_ofn.lpstrTitle = "Export Eternity ActionTool Signal Refrence Header File"; if( dlg.DoModal() == IDOK ) { m_szExportFileName = dlg.GetPathName(); UpdateData( FALSE ); } }