Visual C++程序开发范例宝典(软件工程师典藏版)
上QQ阅读APP看书,第一时间看更新

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文件动态连接数据库。