总结前段时间在VC6下使用MFC开发视频监控控件过程中遇到的一些问题.
1.获取控件当前所在路径,用于读取该目录下的INI配置文件
2.获取当前运行控件的电脑上的固定盘符列表,用于本地录像文件存放
3.视频1,4,9,16路画面切换显示
较简单地实现,在窗体上拖16个STATIC控件(定义数组为panels),动态调整它们的位置大小即可,然后定义一个类如CPlayStatic去继承CStatic,每一个STATIC控件就由CPlayStatic管理;因为我们要在Static控件上添加鼠标,键盘事件处理,鼠标单击事件,选中该一播放面板时绘制绿色边框,可以很明显地看出当前是选中那一路视频播放窗体,同时恢复上一路选中边框为默认灰色边框;鼠标双击事件,实现视频浏览窗口的全屏功能(按多路预览-->单屏预览-->全屏-->单路浏览-->多路预览);右击菜单,对当前画面进行操作,如本地录像,语音对讲,抓图等操作;键盘事件处理,如该窗体当前正在预览按F2/F键进入全屏模式,按Esc退出全屏,恢复普通模式(需让该窗体获得焦点,处理KeyDown事件)
4.画面全屏显示 需注意播放窗口全屏后,就不能够通过GetDlgItem(int ctrlid)获取到该STATIC控件句柄了
5.如果ActiveX控件要使用其它第三方的ActiveX,需在InitInstance()方法中添加AfxEnableControlContainer(); 否则会造成第三方控件无法显示,控件创建出错
6.ActiveX在网页中使用
需使用object标签,其classid具体值可在odl文件中找到,一般在文件最后,不要弄错,否则将会造成控件无法成功创建; odl文件中包含了控件的所有属性,方法以及事件;使用如下
<object id="ocx1" height="520" width="640"
classid="clsid:D55EFD59-8482-4486-9FDE-669EFAC4221B">
</object>
若JavaScript想调用控件的方法,可以这样ocx1.RealPlay();调用控件的RealPlay方法
7.相关参考文章
javascript脚本中定义的参数数组,如何在VC++中访问
本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2009/05/28/1491198.html,如需转载请自行联系原作者。