📄 animationdlg.cpp
字号:
// AnimationDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Controls.h"
#include "AnimationDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAnimationDlg property page
IMPLEMENT_DYNCREATE(CAnimationDlg, CPropertyPage)
CAnimationDlg::CAnimationDlg() : CPropertyPage(CAnimationDlg::IDD)
{
//{{AFX_DATA_INIT(CAnimationDlg)
m_bCopyAutoPlay = TRUE;
m_bCopyBorder = FALSE;
m_bCopyCenter = FALSE;
m_bCopyTransparent = FALSE;
m_bSearchAutoPlay = TRUE;
m_bSearchBorder = FALSE;
m_bSearchCenter = FALSE;
m_bSearchTransparent = FALSE;
//}}AFX_DATA_INIT
m_psp.dwFlags &= ~PSP_HASHELP;
}
CAnimationDlg::~CAnimationDlg()
{
}
void CAnimationDlg::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAnimationDlg)
DDX_Control(pDX, IDC_ANI_COPY, m_ctlCopy);
DDX_Control(pDX, IDC_ANI_SEARCH, m_ctlSearch);
DDX_Check(pDX, IDC_ANICOPY_AUTOPLAY, m_bCopyAutoPlay);
DDX_Check(pDX, IDC_ANICOPY_BORDER, m_bCopyBorder);
DDX_Check(pDX, IDC_ANICOPY_CENTER, m_bCopyCenter);
DDX_Check(pDX, IDC_ANICOPY_TRANSPARENT, m_bCopyTransparent);
DDX_Check(pDX, IDC_ANISEARCH_AUTOPLAY, m_bSearchAutoPlay);
DDX_Check(pDX, IDC_ANISEARCH_BORDER, m_bSearchBorder);
DDX_Check(pDX, IDC_ANISEARCH_CENTER, m_bSearchCenter);
DDX_Check(pDX, IDC_ANISEARCH_TRANSPARENT, m_bSearchTransparent);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAnimationDlg, CPropertyPage)
//{{AFX_MSG_MAP(CAnimationDlg)
//}}AFX_MSG_MAP
ON_COMMAND_RANGE(IDC_ANICOPY_CENTER, IDC_ANICOPY_PLAY, OnCopyCommands)
ON_COMMAND_RANGE(IDC_ANISEARCH_CENTER, IDC_ANISEARCH_PLAY, OnSearchCommands)
ON_CONTROL(ACN_STOP, IDC_ANI_COPY, OnCopyStop)
ON_CONTROL(ACN_STOP, IDC_ANI_SEARCH, OnSearchStop)
ON_CONTROL(ACN_START, IDC_ANI_COPY, OnCopyStart)
ON_CONTROL(ACN_START, IDC_ANI_SEARCH, OnSearchStart)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAnimationDlg message handlers
BOOL CAnimationDlg::OnInitDialog()
{
CPropertyPage::OnInitDialog();
m_ctlCopy.Open (MAKEINTRESOURCE (IDR_AVI_FILECOPY));
m_ctlSearch.Open (MAKEINTRESOURCE (IDR_AVI_SEARCH));
return TRUE;
}
void CAnimationDlg::OnCopyCommands(UINT nID)
{
UpdateData (TRUE);
switch (nID)
{
case IDC_ANICOPY_CENTER:
if (m_bCopyCenter)
m_ctlCopy.ModifyStyle (0, ACS_CENTER, TRUE);
else
m_ctlCopy.ModifyStyle (ACS_CENTER, 0, TRUE);
break;
case IDC_ANICOPY_TRANSPARENT:
if (m_bCopyTransparent)
m_ctlCopy.ModifyStyle (0, ACS_TRANSPARENT, TRUE);
else
m_ctlCopy.ModifyStyle (ACS_TRANSPARENT, 0, TRUE);
break;
case IDC_ANICOPY_BORDER:
m_ctlCopy.Stop ();
if (m_bCopyBorder)
m_ctlCopy.ModifyStyle (0, WS_BORDER, TRUE);
else
m_ctlCopy.ModifyStyle (WS_BORDER, 0, TRUE);
break;
case IDC_ANICOPY_AUTOPLAY:
if (m_bCopyAutoPlay)
m_ctlCopy.ModifyStyle (0, ACS_AUTOPLAY, TRUE);
else
m_ctlCopy.ModifyStyle (ACS_AUTOPLAY, 0, TRUE);
break;
case IDC_ANICOPY_CONTINUOUS:
m_ctlCopy.Play (0, -1, -1);
return;
case IDC_ANICOPY_PLAY:
if (m_bCopyRunning)
{
m_ctlCopy.Stop ();
}
else
{
m_ctlCopy.Play (0, 0xffff, 1);
}
return;
}
RecreateControl (IDC_ANI_COPY);
UpdateData (FALSE);
}
void CAnimationDlg::OnSearchCommands(UINT nID)
{
UpdateData (TRUE);
switch (nID)
{
case IDC_ANISEARCH_CENTER:
if (m_bSearchCenter)
m_ctlSearch.ModifyStyle (0, ACS_CENTER, TRUE);
else
m_ctlSearch.ModifyStyle (ACS_CENTER, 0, TRUE);
break;
case IDC_ANISEARCH_TRANSPARENT:
if (m_bSearchTransparent)
m_ctlSearch.ModifyStyle (0, ACS_TRANSPARENT, TRUE);
else
m_ctlSearch.ModifyStyle (ACS_TRANSPARENT, 0, TRUE);
break;
case IDC_ANISEARCH_BORDER:
m_ctlSearch.Stop ();
if (m_bSearchBorder)
m_ctlSearch.ModifyStyle (0, WS_BORDER, TRUE);
else
m_ctlSearch.ModifyStyle (WS_BORDER, 0, TRUE);
break;
case IDC_ANISEARCH_AUTOPLAY:
if (m_bSearchAutoPlay)
m_ctlSearch.ModifyStyle (0, ACS_AUTOPLAY, TRUE);
else
m_ctlSearch.ModifyStyle (ACS_AUTOPLAY, 0, TRUE);
break;
case IDC_ANISEARCH_CONTINUOUS:
m_ctlSearch.Play (0, -1, -1);
return;
case IDC_ANISEARCH_PLAY:
if (m_bSearchRunning)
{
m_ctlSearch.Stop ();
}
else
{
m_ctlSearch.Play (0, 0xffff, 1);
}
return;
}
RecreateControl (IDC_ANI_SEARCH);
UpdateData (FALSE);
}
void CAnimationDlg::RecreateControl(UINT nID)
{
CAnimateCtrl *ctlAnimate;
switch (nID)
{
case IDC_ANI_COPY:
ctlAnimate = &m_ctlCopy;
break;
case IDC_ANI_SEARCH:
ctlAnimate = &m_ctlSearch;
break;
default:
return;
}
//
// Get the rectangle.
//
CRect rc;
ctlAnimate->GetWindowRect (rc);
ctlAnimate->Stop();
ctlAnimate->Close();
//
// Calling SetWindowPos forces the window to re-read its style
//
ctlAnimate->SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height(),
SWP_NOZORDER|SWP_NOMOVE|SWP_NOACTIVATE|SWP_SHOWWINDOW);
if (nID == IDC_ANI_COPY)
ctlAnimate->Open(MAKEINTRESOURCE (IDR_AVI_FILECOPY));
else
ctlAnimate->Open(MAKEINTRESOURCE (IDR_AVI_SEARCH));
}
//
// The notification message handlers are called when
// the play stops or starts. Use them to change the button
// text and keep track of the running flags.
//
void CAnimationDlg::OnCopyStop()
{
::SetWindowText (GetDlgItem (IDC_ANICOPY_PLAY)->m_hWnd, "Play");
m_bCopyRunning = false;
}
void CAnimationDlg::OnCopyStart()
{
::SetWindowText (GetDlgItem (IDC_ANICOPY_PLAY)->m_hWnd, "Stop");
m_bCopyRunning = true;
}
void CAnimationDlg::OnSearchStop()
{
::SetWindowText (GetDlgItem (IDC_ANISEARCH_PLAY)->m_hWnd, "Play");
m_bSearchRunning = false;
}
void CAnimationDlg::OnSearchStart()
{
::SetWindowText (GetDlgItem (IDC_ANISEARCH_PLAY)->m_hWnd, "Stop");
m_bSearchRunning = true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -