17.9 电子相册的模块分析
在简介中已经对电子相册的管理模块、添加模块和浏览模块介绍过,3个模块的关系如图17.28所示。
本节主要根据前几节介绍的关键技术实现这3个模块的方法。
17.9.1 相册管理模块的设计与实现(1)
相册管理模块主要实现相册的集中管理,相册的预览及功能导航的作用。其功能简单但作用重要。本节将详细介绍实现相册管理模块的主要过程。
(1)为对话框添加3个按钮、1个组合框及2个Group Box控件,布局如图17.29所示。
|
| 图17.28 相册模块示意图 |
|
| 图17.29 相册管理模块的界面布局 |
(2)定义一个相册结构体:
- typedef struct ALBUM
- {
- CString name; //相册名称
- CString str_photo[100]; //相片数组
- CString str_music; //背景音乐
- int num_photo; //相片数量
- }*PALBUM;
相册结构体有4个成员变量,说明如下。
name:相册的名称。
str_photo:保存相册照片路径的字符串数组。
str_music:保存相册背景音乐路径的字符串变量。
num_photo:保存相册中照片的数量。
(3)定义一个相册结构体型的数组变量,用于保存系统中所有的相册。再定义其他几个变量用于相册的管理:
- ALBUM m_album[100]; //相册结构体数组变量
- int m_curAlbum; //系统当前活动相册的序号
- int m_numAlbum; //系统中相册的数量
创建一个相册,在相册管理模块为空时,这个相册为默认的当前相册。在对话框的构造函数中初始化这个相册及其他相应的变量。 - 01 CMyAlbumDlg::CMyAlbumDlg(CWnd* pParent /*=NULL*/)
- 02 : CDialog(CMyAlbumDlg::IDD, pParent)
- 03 { //构建一个默认的相册
- 04 m_numAlbum = 1; //相册数位1
- 05 m_curAlbum = 0; //当前索引为0
- 06 m_album[0].name = "主人相册"; //设置相册名称
- 07 m_album[0].str_music = "音乐\\bk001.wav";
- 08 m_album[0].num_photo = 16; //相片数量
- 09 for(int i = 0; i < m_album[0].num_photo; i++)
- 10 { //载入相片
- 11 m_album[0].str_photo[i].Format("photo\\%c.jpg", 'a' + i);
- 12 }
- 13 }