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

📄 id3tagdlg.cpp

📁 一些关于C++开发的多媒体制作书籍的源代码
💻 CPP
字号:
/*
* Copyright (c) 2002, Bcdliang
* All rights reserved.
*
* 文件名称:ID3TAGDlg.cpp
* 摘    要:类CID3TAGDlg的实现
*
* 当前版本:1.01
* 作    者:LIANG Zheng
* 完成日期:2002年8月11日
*/

#include "stdafx.h"
#include "Resource.h"
#include "ID3TAGDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CID3TAGDlg dialog


CID3TAGDlg::CID3TAGDlg(const CString &strFilePath, CWnd* pParent /*=NULL*/)
	: CDialog(CID3TAGDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CID3TAGDlg)
	m_FilePath = _T("");
	m_TagAlbum = _T("");
	m_TagArtist = _T("");
	m_TagComment = _T("");
	m_TagTitle = _T("");
	m_TagYear = _T("");
	//}}AFX_DATA_INIT
	m_FilePath=strFilePath;
}


void CID3TAGDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CID3TAGDlg)
	DDX_Text(pDX, IDC_FILEPATH, m_FilePath);
	DDX_Text(pDX, IDC_TAGALBUM, m_TagAlbum);
	DDV_MaxChars(pDX, m_TagAlbum, 30);
	DDX_Text(pDX, IDC_TAGARTIST, m_TagArtist);
	DDV_MaxChars(pDX, m_TagArtist, 30);
	DDX_Text(pDX, IDC_TAGCOMMENT, m_TagComment);
	DDV_MaxChars(pDX, m_TagComment, 30);
	DDX_Text(pDX, IDC_TAGTITLE, m_TagTitle);
	DDV_MaxChars(pDX, m_TagTitle, 30);
	DDX_Text(pDX, IDC_TAGYEAR, m_TagYear);
	DDV_MaxChars(pDX, m_TagYear, 4);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CID3TAGDlg, CDialog)
	//{{AFX_MSG_MAP(CID3TAGDlg)
	ON_BN_CLICKED(IDC_DELETEID3, OnDeleteID3)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CID3TAGDlg message handlers

BOOL CID3TAGDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if (!m_id3tag.Open(m_FilePath.GetBuffer(m_FilePath.GetLength()), true))
	{	AfxMessageBox("不能读取TAG信息!");
		OnCancel();
	}
	if (m_id3tag.GetData())
	{	m_TagTitle=m_id3tag.GetSongTitle();
		m_TagArtist=m_id3tag.GetSongArtist();
		m_TagAlbum=m_id3tag.GetSongAlbum();
		m_TagYear=m_id3tag.GetSongYear();
		m_TagComment=m_id3tag.GetSongComment();
	}else
	{	m_TagTitle.Empty();
		m_TagArtist.Empty();
		m_TagAlbum.Empty();
		m_TagYear.Empty();
		m_TagComment.Empty();
	}
	this->UpdateData(false);
	
	m_id3tag.Close();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CID3TAGDlg::OnOK() 
{
	// TODO: Add extra validation here
	if (m_id3tag.Open(m_FilePath.GetBuffer(m_FilePath.GetLength()), false))
	{
		this->UpdateData(true);
		m_id3tag.SetSongTitle(m_TagTitle);
		m_id3tag.SetSongArtist(m_TagArtist);
		m_id3tag.SetSongAlbum(m_TagAlbum);
		m_id3tag.SetSongYear(m_TagYear);
		m_id3tag.SetSongComment(m_TagComment);
		m_id3tag.SetData();
		m_id3tag.Close();
	}else
	{	AfxMessageBox("不能写文件!");
	}	
	CDialog::OnOK();
}

void CID3TAGDlg::OnDeleteID3() 
{
	// TODO: Add your control notification handler code here
	if (m_id3tag.Open(m_FilePath.GetBuffer(m_FilePath.GetLength()), false))
	{	m_TagTitle.Empty();
		m_TagArtist.Empty();
		m_TagAlbum.Empty();
		m_TagYear.Empty();
		m_TagComment.Empty();
		this->UpdateData(false);

		m_id3tag.SetSongTitle(m_TagTitle);
		m_id3tag.SetSongArtist(m_TagArtist);
		m_id3tag.SetSongAlbum(m_TagAlbum);
		m_id3tag.SetSongYear(m_TagYear);
		m_id3tag.SetSongComment(m_TagComment);
		m_id3tag.SetData();
		m_id3tag.Close();
	}else
	{	AfxMessageBox("不能写文件!");
	}	
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -