1.7 多媒体宣传光盘应用实例
实例024 多媒体宣传光盘主界面
本实例是一个提高效率的程序
实例位置:光盘\mingrisoft\01\024
实例说明
随着影视行业的不断发展,优秀的电影层出不穷。为了宣传影片,制片公司采取了多种手段。多媒体宣传光盘不但可以让用户了解影片的简介,还可以提供精彩的影视片段,是其他宣传手段无法取代的。本实例实现了多媒体宣传光盘的主界面,效果如图1.30所示。
图1.30 多媒体宣传光盘主界面
技术要点
本实例界面的背景由一幅图片构成,导航按钮则使用静态文本控件实现。在使用静态文本控件时,默认情况下,该控件不会发送通知消息到父窗口,因此不会响应鼠标的单击事件。在静态文本控件的属性窗口中选中Notify复选框,然后修改静态文本控件的ID,在类向导窗口中处理BN_CLICKED消息,如图1.31所示。
实现过程
(1)新建一个基于对话框的应用程序。
(2)在对话框中添加图片控件、静态文本控件。
图1.31 静态文本的单击事件
(3)通过资源视图导入一幅位图作为背景图片,同时会生成一个位图ID,默认为IDB_BITMAP1。在图片控件的属性窗口中将Type属性修改为Bitmap,将Image属性修改为IDB_BITMAP1,如图1.32所示。
(4)修改静态文本控件的属性,如图1.33所示。
图1.32 Picture控件属性设置
图1.33 Static控件属性设置
(5)处理静态文本控件的单击事件,代码如下:
void CMediaDlg::OnQuit() { OnCancel(); }
举一反三
根据本实例,读者可以:
设计企业多媒体宣传光盘;
开发多媒体动画展示光盘。
实例025 自动运行的多媒体宣传光盘
本实例是一个提高效率的程序
实例位置:光盘\mingrisoft\01\025
实例说明
在各种应用软件的安装盘中都具有自动运行的功能,将安装盘放入光驱中,会自动运行,出现安装画面。本实例是一个光盘自动运行的程序,效果如图1.34所示。
图1.34 自动运行的多媒体宣传光盘
技术要点
其实,实现光盘的自动运行非常简单。当用户打开自动运行的光盘时,会发现光盘中有几个特殊的文件,分别为“autorun.exe”、“run.ico”和“autorun.inf”,其中“autorun.exe”是光盘自动播放时执行的可执行文件,“run.ico”是光盘的图标,“autorun.inf”是一个INI文件。只要光盘中具有这3个文件,就会自动运行。
本实例中涉及操作INI文件,Visual C++提供了WritePrivateProfileString函数,用于创建并写入INI文件数据,该函数语法如下:
BOOL WritePrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString, LPCTSTR lpFileName );
参数说明:
● lpAppName:用于指定INI文件中的段名。
● lpKeyName:用于指定INI文件中的键名。
● lpString:用于指定键值。
● lpFileName:用于指定INI文件名称。
● Visual C++相应地提供了GetPrivateProfileString函数,用于读取INI文件中的数据,该函数语法如下:
DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName, LPCTSTR lpDefault, LPTSTR lpReturnedString,DWORD nSize, LPCTSTR lpFileName);
参数说明:
● lpAppName:标识INI文件中的段名。
● lpKeyName:标识INI文件中的键名。
● lpDefault:标识默认值。
● lpReturnedString:用于接收读取的数据。
● nSize:标识lpReturnedString的大小。
● lpFileName:标识读取的INI文件名称。
实现过程
(1)新建一个基于对话框的应用程序。
(2)在对话框中添加Picture控件。
(3)在对话框初始化时创建INI文件,代码如下:
CString appname = AfxGetAppName(); appname.Insert(0,"./"); appname.Insert(appname.GetLength(),".INI"); WritePrivateProfileString("autorun","open","AUTORUN.EXE",appname); WritePrivateProfileString("autorun","ICON","run.ico",appname);
举一反三
根据本实例,读者可以:
利用INI文件动态连接数据库。