// pEffect.cpp : implementation file // #include "stdafx.h" #include "worldcreator.h" #include "pEffect.h" #include "MainFrm.h" #include "WorldCreatorView.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CpEffect property page IMPLEMENT_DYNCREATE(CpEffect, CPropertyPage) CpEffect::CpEffect() : CPropertyPage(CpEffect::IDD) { //{{AFX_DATA_INIT(CpEffect) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bEffectLoad = TRUE; m_LogFile = NULL; } CpEffect::~CpEffect() { int i; if(m_LogFile != NULL) { fclose(m_LogFile); } m_LogFile = fopen("c:\\WorldEffectList.log","wb+"); for(i=0;iTrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this); *pResult = 0; } void CpEffect::OnDblclkEffectList(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here int SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED); if(SelectCur==-1) return; CDlgEffectLoad dlgEffectLoad; // dlgEffectLoad.m_name = /* dlgObjectLoad.m_strObjectName=m_ObjectListNode[SelectCur].m_strObjectName; dlgObjectLoad.m_strObjectFilename=m_ObjectListNode[SelectCur].m_strObjectFilename; dlgObjectLoad.m_isAlpha=m_ObjectListNode[SelectCur].m_IsAlpha; dlgObjectLoad.m_isLight=m_ObjectListNode[SelectCur].m_IsLight; if(dlgObjectLoad.DoModal()!=IDOK) return; CString strText; strcpy(m_ObjectListNode[SelectCur].m_strObjectName,dlgObjectLoad.m_strObjectName.LockBuffer()); strcpy(m_ObjectListNode[SelectCur].m_strObjectFilename,dlgObjectLoad.m_strObjectFilename.LockBuffer()); if(dlgObjectLoad.m_isAlpha) m_ObjectListNode[SelectCur].m_IsAlpha=true; else m_ObjectListNode[SelectCur].m_IsAlpha=false; if(dlgObjectLoad.m_isLight) m_ObjectListNode[SelectCur].m_IsLight=true; else m_ObjectListNode[SelectCur].m_IsLight=false; m_ObjectList.SetItemText(SelectCur,0,dlgObjectLoad.m_strObjectName); m_ObjectList.SetItemText(SelectCur,1,dlgObjectLoad.m_strObjectFilename); if(dlgObjectLoad.m_isAlpha) m_ObjectList.SetItemText(SelectCur,2,"Yes"); else m_ObjectList.SetItemText(SelectCur,2,"No"); if(dlgObjectLoad.m_isLight) m_ObjectList.SetItemText(SelectCur,3,"Yes"); else m_ObjectList.SetItemText(SelectCur,3,"No"); */ *pResult = 0; } void CpEffect::OnEffectLoad() { // TODO: Add your command handler code here CString strFilter = EFFFILE; CFileDialog filedia(TRUE,EFFECTPATH,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,strFilter,this); filedia.m_ofn.lpstrInitialDir = EFFECTPATH; filedia.DoModal(); CString filename=filedia.GetFileName(); if(filename!="") { m_EffectFileName=filename; add_filename(1); } else { m_bEffectLoad=FALSE; } } void CpEffect::add_filename(int value) { EffectListNode tmp; if(!value) { // »õ·Î Ãß°¡ÇÑ effect /* */ } m_EffectControl.InsertItem(m_EffectControl.GetItemCount(),m_EffectFileName); strcpy(tmp.m_filename,m_EffectFileName); m_EffectListNode.Add(tmp); } BOOL CpEffect::OnInitDialog() { CPropertyPage::OnInitDialog(); DWORD dwStyle; dwStyle = m_EffectControl.SendMessage(LVM_GETEXTENDEDLISTVIEWSTYLE, 0 ,0); dwStyle |= LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES ; m_EffectControl.SendMessage( LVM_SETEXTENDEDLISTVIEWSTYLE, 0,dwStyle ); m_EffectControl.InsertColumn(0,"ÆÄÀϸí",LVCFMT_LEFT,260); m_LogFile = fopen("c:\\WorldEffectList.log","rb"); if(m_LogFile != NULL) { while(!feof(m_LogFile)) { char tmp_buf[256] = {0}; fread((char *)tmp_buf,sizeof(char),256,m_LogFile); m_EffectFileName.Format("%s",tmp_buf); add_filename(1); } fclose(m_LogFile); m_LogFile = NULL; } // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CpEffect::OnBegindragList1(NMHDR* pNMHDR, LRESULT* pResult) { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; // TODO: Add your control notification handler code here CMainFrame *mf=(CMainFrame*)AfxGetApp()->m_pMainWnd; CWorldCreatorView *av=(CWorldCreatorView *)mf->GetActiveView(); SelectObject(); av->m_effect_drag = TRUE; av->ChangeMouseInterface(70); av->m_Select_Effect.Format("%s",m_Select_Effect); *pResult = 0; } void CpEffect::SelectObject() { int m_SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED); if(m_SelectCur<0) return; m_Select_Effect=m_EffectListNode[m_SelectCur].m_filename; } void CpEffect::OnEffectDelete() { // TODO: Add your command handler code here int m_SelectCur=m_EffectControl.GetNextItem(-1,LVNI_SELECTED); if(m_SelectCur<0) return; m_EffectControl.DeleteItem(m_SelectCur); m_EffectListNode.DelIndex(m_SelectCur); }