织梦CMS - 轻松建站从此开始!

罗索

VC6开发视频监控ActiveX控件总结 (2)

jackyhwei 发布于 2010-09-09 19:40 点击:次 
break ; case 16: //DVR有16个视频通道 for (i=0;i16;i++) { j=i%4; if (j==0) { k++; } panels[i]-SetWindowPos(NULL,j*160,k*130,159,129,SWP_NOZORDER); panels[i]-ShowWindow(SW_SHOW); } m_Expanded= fal
TAG:

break
  •         case 16://DVR有16个视频通道 
  •             for (i=0; i<16; i++) 
  •             { 
  •                 j=i % 4; 
  •                 if (j == 0) 
  •                 { 
  •                     k++; 
  •                 } 
  • panels[i]->SetWindowPos(NULL,j * 160,k * 130,159,129,SWP_NOZORDER); 
  • panels[i]->ShowWindow(SW_SHOW); 
  •             } 
  •             m_Expanded=false
  •  
  •             break
  •     } 
  •     Invalidate();//立即重绘窗体,显示效果 
  • 4.画面全屏显示 需注意播放窗口全屏后,就不能够通过GetDlgItem(int ctrlid)获取到该STATIC控件句柄了

    全屏

    1. private
    2.     int         ActiveCtrlHandle;   // 当前活动播放面板的会话标识值(选中视频通道的控制句柄) 
    3.     CPlayStatic *panels[16]; 
    4.         
    5.     bool m_Expanded;                // 播放面板是否单路浏览 
    6.     bool m_enterFull;               // 是否进入全屏模式    
    7.     BOOL m_bFullScreen;             // 全屏标记    
    8.     WINDOWPLACEMENT _temppl;        // 全屏时保存原窗口信息,用来恢复窗口  window's placement 

    //处理用户鼠标双击面板事件

    1. void CRealPlayDlg::DoDbClick(CWnd *current) 
    2.     //如果已经全屏,则退出全屏模式 
    3.     if (m_bFullScreen) 
    4.     { 
    5. //还原风格 
    6. current->SetParent(this); 
    7. current->ModifyStyle(WS_POPUP, WS_CHILD); 
    8. ::SetWindowPos(current->GetSafeHwnd(), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 
    9. //current->ModifyStyle(WS_CHILD, WS_CLIPSIBLINGS);//WS_CLIPCHILDREN 
    10. //::SetWindowLong(current->m_hWnd, GWL_STYLE, style); 
    11. //还原位置 
    12. current->SetWindowPlacement(&_temppl); 
    13. m_bFullScreen = FALSE; 
    14.     } 
    15.     else 
    16.     { 
    17. //如果窗体已经进入单屏显示模式,则进入全屏模式 
    18. if (m_Expanded) 
    19.    //如果当前窗口已经打开了视频,则全屏;否则切换回到多屏显示模式 
    20.    if (ActiveCtrlHandle != -1) 
    21.    {
    22.    if (m_enterFull) 
    23.    { 
    24. //全屏 
    25. //得到显示器分辨率 
    26. int cx=GetSystemMetrics(SM_CXSCREEN);
    27. int cy=GetSystemMetrics(SM_CYSCREEN);
    28. //保存位置信息
    29. current->GetWindowPlacement(&_temppl);
    30. current->SetParent(NULL); // GetDesktopWindow()
    31. current->SetFocus();
    32. //修改风格
    33. current->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | WS_EX_TOPMOST);
    34. current->ModifyStyle(WS_CHILD, WS_POPUP);
    35. //移动窗口
    36. current->MoveWindow(0, 0, cx, cy);
    37. m_bFullScreen = TRUE; 
    38.    } 
    39.    else 
    40.    {
    41. ArrangeWindow(); 
    42.    } 
    43.    m_enterFull = !m_enterFull;
    44. else 
    45.    ArrangeWindow(); 
    46. else 
    47. //如果是多屏显示模式,则切换当前选中面板到单屏显示 
    48. for (int i=0; i<16; i++) 
    49. if (i != currentSel) 
    50. panels[i]->ShowWindow(SW_HIDE); 
    51. else 
    52. panels[i]->MoveWindow(0,0,640,520);    
    53. m_Expanded=true
    54. }        
    55. Invalidate(); 

    5.如果ActiveX控件要使用其它第三方的ActiveX,需在InitInstance()方法中添加AfxEnableControlContainer(); 否则会造成第三方控件无法显示,控件创建出错

    6.ActiveX在网页中使用

      需使用object标签,其classid具体值可在odl文件中找到,一般在文件最后,不要弄错,否则将会造成控件无法成功创建; odl文件中包含了控件的所有属性,方法以及事件;使用如下

    1. <object id="ocx1" height="520" width="640" 
    2. classid="clsid:D55EFD59-8482-4486-9FDE-669EFAC4221B"> 
    3. </object> 

    若JavaScript想调用控件的方法,可以这样ocx1.RealPlay();调用控件的RealPlay方法

    7.相关参考文章

    使用MFC开发ActiveX控件全过程

    ActiveX的设计

    在ActiveX控件中引入窗体技术

    如何将MFC ActiveX控件标记为安全

    将ActiveX控件标记为脚本安全和初始化安全

    ActiveX控件数字签名的实现

    ActiveX安全:改进和最佳实践[MSDN]

    JavaScript 响应 ActiveX 事件

    ActiveX组件与JavaScript交互 

    javascript脚本中定义的参数数组,如何在VC++中访问

    IExpress压缩CAB文件及制作安装程序所开发的小工具

    Web发布cab文件打包的ActiveX控件总结

    制作cab包,参考inf文件

     

    (peterzb)
    本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www.rosoo.net/a/201009/10128.html]
    本文出处:博客园 作者:peterzb
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线----------------------------
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    用户名: 验证码:点击我更换图片
    栏目列表
    将本文分享到微信
    织梦二维码生成器
    推荐内容