9.2.3 界面设计(1)
本案例使用VC++(www.cppentry.com) 2005的对话框应用程序框架设计视频捕获应用程序。界面设计步骤与前面第8章的界面设计基本相同,这里不再列出VC++(www.cppentry.com) 2005应用程序向导建立对话框程序框架的过程。下面详细列出该案例设计的具体步骤。
应用VC++(www.cppentry.com) 2005应用程序向导建立对话框程序框架,项目名称为CaptureVideo。
在项目CaptureVideo的主界面中添加控件:6个Button、1个Combo Box、1个Picture Control,如表9-1所示。根据其功能修改所有控件的ID。
表9-1 控件功能列表
|
名称< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
说明 |
|
ID_PREVIEW |
视频预览 |
|
ID_CAPTURE |
视频捕获 |
|
ID_VIDEO_FORMAT |
视频格式 |
|
ID_IMAGE_PARAMETER |
图像参数 |
|
ID_SAVEGRAPH |
保存图表 |
|
ID_EXIT |
退出程序(终止预览捕获) |
|
IDC_DEVICE_LISTER |
设备列表组合框 |
|
IDC_VIDEO_WINDOW |
显示捕获的视频图像 |
在添加所有的控件后,修改控件大小,重排其位置。添加控件后的主界面设计如图9-8所示。
控件与变量捆绑。为便于控制,把IDC_VIDEO_WINDOW控件、IDC_DEVICE_LISTER控件分别与变量捆绑。途径是选择控件的右键菜单中的"添加变量"命令,如图9-9所示,激活"欢迎使用添加成员变量向导"。
|
| (点击查看大图)图9-8 采集视频界面设计 |
|
| 图9-9 控件右键菜单内容 |
添加控件变量后的CCaptureVideoDlg类的代码如下。
//显示捕获的图像 CStatic m_videoWindow; //组合框列表,显示设备名称 CComboBox m_listCtrl; |
添加按钮在线提示ToolTip。
首先在类CCaptureVideoDlg定义中声明tooltip控件。
接着在类CCaptureVideoDlg实现文件的对话框初始化函数OnInitDialog中添加:
m_tooltip.Create(this); m_tooltip.Activate(TRUE); m_tooltip.AddTool(GetDlgItem(ID_PREVIEW), _T("开始预览视频")); //添加其他按钮的tooltip |
在PreTranslateMessage消息处理函数中添加如下代码,如果程序中没有该消息处理函数,则需要用户自己添加。添加过程同8.4.1小节。
m_tooltip.RelayEvent(pMsg); |
功能按钮的消息响应,即单击按钮的事件处理。
双击某按钮,实现单击按钮事件处理函数的添加。为了使用类CCaptureClass的变量和函数,在CCaptureVideoDlg类中引入头文件并定义视频捕获类的对象。
首先引入头文件:
#include "CaptureClass.h" |
接着在CCaptureVideoDlg类中定义视频捕获类的对象:
双击"视频预览"按钮,添加事件处理代码:
void CCaptureVideoDlg::OnBnClickedPreview() { //TODO: 在此添加控件通知处理程序代码 HWND hVWindow = m_videoWindow.GetSafeHwnd(); //获取视频显示窗口的句柄 int id = m_listCtrl.GetCurSel(); //获取当前选中的视频设备 m_cap.PreviewImages(id , hVWindow); //开始预览视频 } |
【责任编辑:
云霞 TEL:(010)68476606】