www.pudn.com > source.rar > ViewerFrame.cpp
// ViewerFrame.cpp : implementation file
//
#include "stdafx.h"
#include "flashnow.h"
#include "BrowserFrame.h"
#include "ViewerFrame.h"
#include "FileOpenDlg.h"
#include "FileOpenDlg.h"
#include "PropertyDlg.h"
#include "2HTMLDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CViewerFrame
static UINT indicators[] =
{
ID_SEPARATOR,
ID_INDICATOR_LOADED,
ID_INDICATOR_CURRENTFRAME,
ID_INDICATOR_FRAMES
};
IMPLEMENT_DYNCREATE(CViewerFrame, CFrameWnd)
CViewerFrame::CViewerFrame()
{
m_Wait=FALSE;
m_Frames=0;
m_Progress=0;
m_CurrentFrame=-1;
m_FullScreen=FALSE;
}
CViewerFrame::~CViewerFrame()
{
}
BEGIN_MESSAGE_MAP(CViewerFrame, CFrameWnd)
//{{AFX_MSG_MAP(CViewerFrame)
ON_WM_CLOSE()
ON_WM_CREATE()
ON_WM_SIZE()
ON_WM_GETMINMAXINFO()
ON_COMMAND(ID_FILE_PROPERTY, OnFileProperty)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_UPDATE_COMMAND_UI(ID_FILE_PROPERTY, OnUpdateFileProperty)
ON_UPDATE_COMMAND_UI(ID_MOVIE_FORWARD, OnUpdateMovieForward)
ON_UPDATE_COMMAND_UI(ID_FRAME_BACK, OnUpdateFrameBack)
ON_UPDATE_COMMAND_UI(ID_FRAME_END, OnUpdateFrameEnd)
ON_UPDATE_COMMAND_UI(ID_FRAME_FORWARD, OnUpdateFrameForward)
ON_UPDATE_COMMAND_UI(ID_FRAME_REWIND, OnUpdateFrameRewind)
ON_UPDATE_COMMAND_UI(ID_MOVIE_BACK, OnUpdateMovieBack)
ON_COMMAND(ID_MOVIE_FORWARD, OnMovieForward)
ON_COMMAND(ID_MOVIE_TAIL, OnMovieTail)
ON_COMMAND(ID_MOVIE_STOP, OnMovieStop)
ON_UPDATE_COMMAND_UI(ID_MOVIE_STOP, OnUpdateMovieStop)
ON_COMMAND(ID_MOVIE_PLAY, OnMoviePlay)
ON_UPDATE_COMMAND_UI(ID_MOVIE_PLAY, OnUpdateMoviePlay)
ON_COMMAND(ID_MOVIE_LOOP, OnMovieLoop)
ON_UPDATE_COMMAND_UI(ID_MOVIE_LOOP, OnUpdateMovieLoop)
ON_COMMAND(ID_MOVIE_HEAD, OnMovieHead)
ON_COMMAND(ID_MOVIE_BACK, OnMovieBack)
ON_COMMAND(ID_FRAME_REWIND, OnFrameRewind)
ON_COMMAND(ID_FRAME_FORWARD, OnFrameForward)
ON_COMMAND(ID_FRAME_END, OnFrameEnd)
ON_COMMAND(ID_FRAME_BACK, OnFrameBack)
ON_COMMAND(ID_ZOOM_IN, OnZoomIn)
ON_COMMAND(ID_ZOOM_OUT, OnZoomOut)
ON_COMMAND(ID_SHOW_ALL, OnShowAll)
ON_WM_TIMER()
ON_COMMAND(ID_EXACT_IT, OnExactIt)
ON_COMMAND(ID_END_FULL_SCREEN, OnEndFullScreen)
ON_UPDATE_COMMAND_UI(ID_FULL_SCREEN, OnUpdateFullScreen)
ON_UPDATE_COMMAND_UI(ID_ZOOM_IN, OnUpdateZoomIn)
ON_UPDATE_COMMAND_UI(ID_ZOOM_OUT, OnUpdateZoomOut)
ON_UPDATE_COMMAND_UI(ID_SHOW_ALL, OnUpdateShowAll)
ON_UPDATE_COMMAND_UI(ID_EXACT_IT, OnUpdateExactIt)
ON_COMMAND(ID_ACTUAL_SIZE, OnActualSize)
ON_UPDATE_COMMAND_UI(ID_ACTUAL_SIZE, OnUpdateActualSize)
ON_COMMAND(ID_BACK_COLOR, OnBackColor)
ON_COMMAND(ID_HIGH_QUALITY, OnHighQuality)
ON_COMMAND(ID_LOW_QUALITY, OnLowQuality)
ON_COMMAND(ID_MEDIUM_QUALITY, OnMediumQuality)
ON_UPDATE_COMMAND_UI(ID_HIGH_QUALITY, OnUpdateHighQuality)
ON_UPDATE_COMMAND_UI(ID_LOW_QUALITY, OnUpdateLowQuality)
ON_UPDATE_COMMAND_UI(ID_MEDIUM_QUALITY, OnUpdateMediumQuality)
ON_COMMAND(ID_MOVIE_QUALITY, OnMovieQuality)
ON_UPDATE_COMMAND_UI(ID_MOVIE_QUALITY, OnUpdateMovieQuality)
ON_COMMAND(ID_FILE_SAVE_NOW, OnFileSaveNow)
ON_UPDATE_COMMAND_UI(ID_FILE_SAVE_NOW, OnUpdateFileSaveNow)
ON_COMMAND(ID_FILE_EXPORT_FLASH, OnFileExportFlash)
ON_UPDATE_COMMAND_UI(ID_FILE_EXPORT_FLASH, OnUpdateFileExportFlash)
ON_COMMAND(ID_FILE_EXPORT_HTML, OnFileExportHtml)
ON_UPDATE_COMMAND_UI(ID_FILE_EXPORT_HTML, OnUpdateFileExportHtml)
ON_COMMAND(ID_HELP_PRODUCT, OnHelpProduct)
ON_UPDATE_COMMAND_UI(ID_BACK_COLOR, OnUpdateBackColor)
ON_COMMAND(ID_SLIDE_SHOW, OnSlideShow)
ON_UPDATE_COMMAND_UI(ID_SLIDE_SHOW, OnUpdateSlideShow)
ON_COMMAND(ID_FULL_SCREEN, OnFullScreen)
ON_COMMAND(ID_MOVIE_BROWSE, OnMovieBrowse)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CViewerFrame message handlers
void CViewerFrame::OnClose()
{
CFrameWnd::OnClose();
if(::theApp.p_Browser)
{
::theApp.p_Browser->DestroyWindow();
::theApp.p_Browser=NULL;
}
}
BOOL CViewerFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if(!CFrameWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle&=~WS_EX_CLIENTEDGE;
cs.lpszClass=AfxRegisterWndClass(0,0,0,::theApp.LoadIcon(IDI_VIEWER));
return TRUE;
}
int CViewerFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_View.Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
CRect(0, 0, 0, 0), this, AFX_IDW_PANE_FIRST, NULL))
{
TRACE0("Failed to create view window\n");
return -1;
}
if (!m_ToolBar.CreateEx(this) ||
!m_ToolBar.LoadToolBar(IDR_VIEWER))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
if (!m_FlashToolBar.CreateEx(this) ||
!m_FlashToolBar.LoadToolBar(IDR_FLASH))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
m_ToolBar.SetDropDownButton(ID_FILE_SAVE_NOW,IDM_SAVEPATH_POP);
m_FlashToolBar.SetDropDownButton(ID_MOVIE_QUALITY,IDM_QUALITY_POP);
if (!m_DlgBar.Create(this, IDD_VIEWER,
CBRS_ALIGN_TOP, AFX_IDW_DIALOGBAR))
{
TRACE0("Failed to create dialogbar\n");
return -1;
}
if (!m_ReBar.Create(this) ||
!m_ReBar.AddBar(&m_ToolBar) ||
!m_ReBar.AddBar(&m_FlashToolBar) ||
!m_ReBar.AddBar(&m_DlgBar))
{
TRACE0("Failed to create rebar\n");
return -1;
}
if (!m_StatusBar.Create(this) ||
!m_StatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1;
}
UINT ID,Style;
int Pane,Width;
Pane=m_StatusBar.CommandToIndex(ID_INDICATOR_LOADED);
m_StatusBar.GetPaneInfo(Pane,ID,Style,Width);
m_StatusBar.SetPaneInfo(Pane,ID,Style|SBPS_OWNERDRAW,Width);
m_ToolBar.SetBarStyle(m_ToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY);
m_FlashToolBar.SetBarStyle(m_FlashToolBar.GetBarStyle()|
CBRS_TOOLTIPS | CBRS_FLYBY);
m_DlgBar.OnInitDialog();
return 0;
}
void CViewerFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
m_DlgBar.ResizeSlider();
}
void CViewerFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if(m_FullScreen)
{
lpMMI->ptMaxSize.x=m_FullScreenRect.Width();
lpMMI->ptMaxSize.y=m_FullScreenRect.Height();
lpMMI->ptMaxPosition.x=m_FullScreenRect.Width();
lpMMI->ptMaxPosition.y=m_FullScreenRect.Height();
lpMMI->ptMaxTrackSize.x=m_FullScreenRect.Width();
lpMMI->ptMaxTrackSize.y=m_FullScreenRect.Height();
}
CRect Rect;
GetWindowRect(&Rect);
CRect ClientRect;
GetClientRect(&ClientRect);
int WidthOffset = Rect.Width() - ClientRect.Width();
lpMMI->ptMinTrackSize.x = VIEWER_WIDTH_LIMIT + WidthOffset;
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
void CViewerFrame::OnFileProperty()
{
CPropertyDlg Dlg(m_Frames);
Dlg.DoModal();
}
void CViewerFrame::OnFileOpen()
{
CFileOpenDlg Dlg(TRUE,NULL,"*.swf",0,"ShockwaveFlash动画文件(*.swf)|*.swf|程序文件(*.exe)|*.exe|所有文件(*.*)|*.*||");
if(Dlg.DoModal()==IDOK)
{
if(::theApp.AttachFile(Dlg.GetPathName())!=-1)
LoadMovie();
}
}
void CViewerFrame::OnUpdateFileProperty(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
ShowProgress();
ShowFrames();
ShowCurrentFrame(m_DlgBar.m_DragMode);
if(!m_DlgBar.m_DragMode&&!m_Wait&&::theApp.m_UserData.m_SlideShow&&m_CurrentFrame==m_Frames-1&&::theApp.m_FlashIndex<::theApp.m_FlashCount-1)
{
m_Wait=TRUE;
m_TimerID=SetTimer(800520,::theApp.m_UserData.m_Elapse,NULL);
}
}
void CViewerFrame::OnUpdateMovieForward(CCmdUI* pCmdUI)
{
pCmdUI->Enable(::theApp.m_FlashIndex>=0&&::theApp.m_FlashIndex<::theApp.m_FlashCount-1);
}
void CViewerFrame::OnUpdateMovieBack(CCmdUI* pCmdUI)
{
pCmdUI->Enable(::theApp.m_FlashIndex>0);
}
void CViewerFrame::OnUpdateFrameRewind(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4&&m_CurrentFrame>0);
}
void CViewerFrame::OnUpdateFrameForward(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4&&m_CurrentFrameEnable(p_Flash->GetReadyState()==4&&m_CurrentFrameEnable(p_Flash->GetReadyState()==4&&m_CurrentFrame>0);
}
void CViewerFrame::OnMovieForward()
{
if(::theApp.m_FlashIndex==::theApp.m_FlashCount-1)
return;
::theApp.m_FlashIndex++;
NoWait();
LoadMovie(FALSE);
}
void CViewerFrame::OnMovieTail()
{
if(::theApp.m_FlashIndex==::theApp.m_FlashCount-1)
return;
::theApp.m_FlashIndex=::theApp.m_FlashCount-1;
NoWait();
LoadMovie(FALSE);
}
void CViewerFrame::OnMovieStop()
{
NoWait();
p_Flash->StopPlay();
}
void CViewerFrame::OnUpdateMovieStop(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4&&p_Flash->IsPlaying());
}
void CViewerFrame::OnMoviePlay()
{
NoWait();
p_Flash->Play();
}
void CViewerFrame::OnUpdateMoviePlay(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4&&!p_Flash->IsPlaying());
}
void CViewerFrame::OnMovieLoop()
{
p_Flash->SetLoop(!p_Flash->GetLoop());
}
void CViewerFrame::OnUpdateMovieLoop(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(p_Flash->GetLoop());
}
void CViewerFrame::OnMovieHead()
{
if(!::theApp.m_FlashIndex)
return;
::theApp.m_FlashIndex=0;
NoWait();
LoadMovie(FALSE);
}
void CViewerFrame::OnMovieBack()
{
if(!::theApp.m_FlashIndex)
return;
::theApp.m_FlashIndex--;
NoWait();
LoadMovie(FALSE);
}
void CViewerFrame::OnFrameRewind()
{
NoWait();
p_Flash->Rewind();
}
void CViewerFrame::OnFrameForward()
{
NoWait();
p_Flash->Forward();
}
void CViewerFrame::OnFrameEnd()
{
NoWait();
p_Flash->GotoFrame(m_Frames-1);
}
void CViewerFrame::OnFrameBack()
{
NoWait();
p_Flash->Back();
}
void CViewerFrame::OnZoomIn()
{
p_Flash->Zoom(80);
}
void CViewerFrame::OnZoomOut()
{
p_Flash->Zoom(125);
}
void CViewerFrame::SetCurrentFrame(int Value)
{
if(m_CurrentFrame==Value)
return;
BOOL Playing=p_Flash->IsPlaying();
p_Flash->GotoFrame(Value);
if(Playing)
p_Flash->Play();
m_CurrentFrame=Value;
CString Text;
Text.Format(" 当前帧:%5d ",Value);
m_StatusBar.SetPaneText(2,Text);
}
void CViewerFrame::OnShowAll()
{
p_Flash->SetScaleMode(0);
}
void CViewerFrame::LoadMovie(BOOL BuildFlashIndexTable)
{
if(BuildFlashIndexTable)
::theApp.BuildFlashIndexTable();
CString MovieURL=::theApp.GetMovieURL();
p_Flash->SetMovie(MovieURL);
::theApp.SetWindowTitle(MovieURL,FALSE);
m_DlgBar.m_List.SetWindowText(MovieURL);
}
void CViewerFrame::OnTimer(UINT nIDEvent)
{
OnMovieForward();
CFrameWnd::OnTimer(nIDEvent);
}
void CViewerFrame::ShowCurrentFrame(BOOL DragMode)
{
if(DragMode)
return;
int Value=p_Flash->CurrentFrame();
if(m_CurrentFrame==Value)
return;
if(Value<0)
Value=0;
CString Text;
Text.Format(" 当前帧:%5d ",Value);
m_StatusBar.SetPaneText(2,Text);
m_DlgBar.m_Slider.SetPos(Value);
m_CurrentFrame=Value;
}
void CViewerFrame::ShowFrames()
{
if(p_Flash->GetReadyState()!=4)
return;
int Value=p_Flash->GetTotalFrames();
if(m_Frames==Value)
return;
CString Text;
Text.Format(" 总帧数:%5d ",Value);
m_StatusBar.SetPaneText(3,Text);
m_DlgBar.m_Slider.SetRange(0,Value-1,FALSE);
m_Frames=Value;
}
void CViewerFrame::ShowProgress()
{
int Value=p_Flash->PercentLoaded();
if(m_Progress==Value)
return;
m_Progress=Value;
if(Value==100)
{
m_StatusBar.SetPaneText(1,"0");
m_StatusBar.SetPaneText(0,"动画文件装载完毕");
}
else
{
CString Text;
Text.Format("%d",Value);
m_StatusBar.SetPaneText(1,Text);
m_StatusBar.SetPaneText(0,"正在装载动画文件...");
}
}
void CViewerFrame::ClearAll()
{
m_Frames=0;
m_Progress=0;
m_CurrentFrame=-1;
m_StatusBar.SetPaneText(0,::theApp.m_MovieURL);
m_StatusBar.SetPaneText(1,"0");
m_StatusBar.SetPaneText(2," 当前帧: 0 ");
m_StatusBar.SetPaneText(3," 总帧数: 0 ");
m_DlgBar.m_Slider.SetRange(0,0,TRUE);
m_DlgBar.m_Slider.SetPos(0);
}
void CViewerFrame::NoWait()
{
if(m_Wait)
{
KillTimer(m_TimerID);
m_Wait=FALSE;
}
}
void CViewerFrame::OnExactIt()
{
p_Flash->SetScaleMode(2);
}
void CViewerFrame::OnFullScreen()
{
if(m_FullScreen)
EndFullScreen();
else
FullScreenShow();
}
void CViewerFrame::FullScreenShow()
{
GetWindowPlacement(&m_OldWndPlacement);
CRect WindowRect;
GetWindowRect(&WindowRect);
CRect ClientRect;
RepositionBars(0,0xffff,AFX_IDW_PANE_FIRST,reposQuery,&ClientRect);
ClientToScreen(&ClientRect);
int nFullWidth=GetSystemMetrics(SM_CXSCREEN);
int nFullHeight=GetSystemMetrics(SM_CYSCREEN);
m_FullScreenRect.left=WindowRect.left-ClientRect.left-1;
m_FullScreenRect.top=WindowRect.top-ClientRect.top-1;
m_FullScreenRect.right=WindowRect.right-ClientRect.right+nFullWidth+2;
m_FullScreenRect.bottom=WindowRect.bottom-ClientRect.bottom+nFullHeight+2;
m_FullScreen=TRUE;
WINDOWPLACEMENT wndpl;
wndpl.length=sizeof(WINDOWPLACEMENT);
wndpl.flags=0;
wndpl.showCmd=SW_SHOWNORMAL;
wndpl.rcNormalPosition=m_FullScreenRect;
ShowWindow(SW_HIDE);
SetWindowPlacement(&wndpl);
}
void CViewerFrame::OnEndFullScreen()
{
if(m_FullScreen)
EndFullScreen();
}
void CViewerFrame::OnUpdateFullScreen(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::EndFullScreen()
{
m_FullScreen=FALSE;
ShowWindow(SW_HIDE);
SetWindowPlacement(&m_OldWndPlacement);
}
void CViewerFrame::OnUpdateZoomIn(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnUpdateZoomOut(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnUpdateShowAll(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnUpdateExactIt(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnActualSize()
{
p_Flash->Zoom(0);
}
void CViewerFrame::OnUpdateActualSize(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnHilite()
{
LoadMovie();
}
void CViewerFrame::OnBackColor()
{
CColorDialog ColorDlg(p_Flash->GetBackgroundColor());
if(ColorDlg.DoModal()==IDOK)
p_Flash->SetBackgroundColor(ColorDlg.GetColor());
}
void CViewerFrame::OnHighQuality()
{
p_Flash->SetQuality2("High");
}
void CViewerFrame::OnLowQuality()
{
p_Flash->SetQuality2("Low");
}
void CViewerFrame::OnMediumQuality()
{
p_Flash->SetQuality2("Medium");
}
void CViewerFrame::OnUpdateHighQuality(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(!p_Flash->GetQuality2().CollateNoCase("High"));
}
void CViewerFrame::OnUpdateLowQuality(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(!p_Flash->GetQuality2().CollateNoCase("Low"));
}
void CViewerFrame::OnUpdateMediumQuality(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(!p_Flash->GetQuality2().CollateNoCase("Medium"));
}
void CViewerFrame::OnMovieQuality()
{
p_Flash->SetQuality(!p_Flash->GetQuality());
}
void CViewerFrame::OnUpdateMovieQuality(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnFileSaveNow()
{
int Count=m_SavePath.GetCount();
if(Count)
SaveNow(m_SavePath.GetAt(Count-1));
else
OnFileExportFlash();
}
void CViewerFrame::OnUpdateFileSaveNow(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnFileExportFlash()
{
CFileDialog Dlg(FALSE,"swf",GetFileTitleFromFileName(p_Flash->GetMovie(),FALSE)+".swf",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"ShockwaveFlash动画文件(*.swf)|*.swf|所有文件(*.*)|*.*||");
if(Dlg.DoModal()==IDOK)
{
CString FullPath=Dlg.GetPathName();
p_Flash->SaveAs(FullPath);
m_SavePath.Add(GetFilePathFromFileName(FullPath));
}
}
void CViewerFrame::OnUpdateFileExportFlash(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnFileExportHtml()
{
C2HtmlDlg Dlg(p_Flash,::theApp.m_UserData.m_URLMode);
Dlg.DoModal();
}
void CViewerFrame::OnUpdateFileExportHtml(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnHelpProduct()
{
theApp.LoadMovie(theApp.m_ModuleFilePath+"sample.swf");
}
void CViewerFrame::OnUpdateBackColor(CCmdUI* pCmdUI)
{
pCmdUI->Enable(p_Flash->GetReadyState()==4);
}
void CViewerFrame::OnSlideShow()
{
::theApp.m_UserData.m_SlideShow=!::theApp.m_UserData.m_SlideShow;
}
void CViewerFrame::OnUpdateSlideShow(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(::theApp.m_UserData.m_SlideShow);
}
BOOL CViewerFrame::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==0x0111&&pMsg->wParam>=0xff20&&pMsg->wParam<=0xff24)
{
int Index=pMsg->wParam-0xff20;
SaveNow(m_SavePath.GetAt(Index));
return TRUE;
}
return CFrameWnd::PreTranslateMessage(pMsg);
}
void CViewerFrame::SaveNow(CString FullPath)
{
if(FullPath.Right(1)!='\\')
FullPath+='\\';
p_Flash->SaveAs(FullPath+GetFileTitleFromFileName(p_Flash->GetMovie(),FALSE)+".swf");
m_SavePath.Add(FullPath);
}
void CViewerFrame::OnMovieBrowse()
{
::theApp.SwitchToBrowser();
}