⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 animationdlg.cpp

📁 VC源代码大全(精华版)
💻 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 + -