zoukankan      html  css  js  c++  java
  • 使用Silverlight for wince6.0 作为视频预览的界面_之一

    时间:18:19 2010-12-30

    环境:
    开发环境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2/3 +DSHOW
    运行环境:WINCE 6.0 R3
    硬件加速: DirectX

    联系:
    公司网站:     http://www.pvontek.com
    E-MAIL:    pengxinglove@gmail.com

     

    背景

       我们有一个MFC版本的视频预览程序的DEMO,此由硬件产生提供的.

    此DEMO其的主要作用:告诉我们APP开发人员怎么样使用其所提供的FILTER.所以界面主要是功能的展示,一个DIALOG就表达.

       我们APP开发人员要求使用SWE来制作此视频预览程序的界面,程序的核心业务逻辑不变,还是使用硬件产商所提供的FILTER,

      所有,我们只是将APP换一个外衣.

    由于MFC版本的DEMO程序结构好,界面与核心业务逻辑是分开的.这更加地方便了我们.

      感受:界面与业务逻辑分开对于我们来说很有用的,我们一般是使用MVC结构来分层.

    下面我只讲界面制作的相关问题,因为核心业务逻辑,其是与相关的硬件有关,(其将操作视频IC的IOCONTROL 写成了FILTER, 所以此FILTER其是特定硬件有关,其也是只是提供了接口与LIB,DLL文件,也只要提供这些就可以,) 

     

     

    效果图

     

    第一次加工的效果图

    11

     

    问题:

    视频窗口在设置参数图层的上面.此时APP其只有两个窗口: 主窗口(PAGE) 视频窗口.

    通过REMOTE SPY++ 所看到的.

    3

    第二次加工的效果图

    我们将 参数设置图层制作成一个单独地窗口. 将此窗口设置成为主窗口的子窗口

    2

     

    通过SPY++ 所观察到的.

    4

     

     

    感受

    编写一个APP其要经历三个阶段

    1. 界面的设计

    如:使用BLEND 或VS来制作界面

    2. 界面过度到编写业务逻辑

    如:根据项目开发模板,创建一个项目, 为控件创建事件

    3. 编写业务逻辑

    实现事件代码

     

    使用MFC还是SWE其主要还是:1.2这两个阶段不同,但其本质是相同的,在后面将会比较一下.

    其所给我们的提示.

    1. 程序的业务逻辑,其不要有控件层代码直接交互,一般地做法.

    使用MVC结构来帮助分层.其是在业务逻辑与控件层之间添加一层,作为中转叫 controller.

    要求:

    1.控件层与CONTROL 层,通过DATA 类来进行数据的传递,

    2.这些层,其以类来封装的.

    3.控件层与CONTROL 层的引用,CONTROL 层有控件层的引用和业务逻辑层 的引用

    2.我们应该去优化 第一.二两个阶段.使用程序员可以直接地进入第三阶段,编写业务逻辑,因为只有第三个阶段才是有真正价值的. 

     

    在MFC当中,因为有VS的支持,我们第一.二阶段所花费时间很少.

    优点:

    可以快速地进行业务逻辑的编写

    不足:

    编写漂亮的界面,不灵活,很花费时间

    在Silverlight for WINCE 6.0当中,其在第二阶段所花费的时间是最多的.

    为了减少在此阶段所花费的时间,我们使用了XAML2CPP工具,或其的高级版本

    AUTOXAML2CPP. 现在我们主要是使用AUTOXAML2CPP.

     

    结果:

    在WINCE6.0 平台上.

    如果我们只是为了测试功能,如测试驱动,我们使用MFC好

    如果我们需要一个好看的界面,我们还是使用SWE好.

    TIPS:

    在WINCE 7.0 平台上,MS其已经优化了第二阶段,也就是其提供了一个SWET工具.

    同时也说明了两点:

    1.MS对于SWE的重视

    2.MS其不会为WINCE6.0开发一个工具来优化第二阶段.这也就是AUTOXAML2CPP其所产生的背景.

     

     

    MFC与SWE的本质是相同的

         我们将从上面所提到的创建APP的三个阶段来分别比较说明

     

    先说MFC

     

    界面的设计

    1

                                  图:界面的描述             

      其在VS当中设计的,在界面的设计过程当中,其是可以可视的设计,但其本质还是产生了相应的配置文件.

     

    对于界面当中的元素访问与事件注册

    9 

                        图: 主窗口类与界面的绑定 和控件类的定义

    5 

              图:控件与控件类之间的绑定

    6

                                    图: 为相关控件注册事件

    事件响应

    7

                               图: 实现事件

    MFC程序的设计过程当中业务流程:

    1. 解析界面配置文件

    2. 创建主窗口:需要提供:窗口类,窗口过程,主窗口与CDialog的子类绑定到一起,其是通过HWND.

    3. 根据配置文件当中子控件描述,创建子控件,与实现子控件所对应的类.如:BUTTON ,其要绑定到CButton对象,BUTTON与CBUTTON主要是通过HWND绑定在一起.

    4. 将主窗口与子控件关联起来.其是通过控件类来方便完成的<主要动作:是将主窗口的HWND告诉子控件,在子控件其接收到消息以后,其根据父控件的HWND来向父控件发送消息.

    5. 在主窗口当中了,为相关控件注册事件.

    MFC及MFC的工具为我们完成了上面的业务流程,

    只要我们编写业务逻辑代码就可以了.

     

    SWE当中

     

    界面的设计

      2

                             图: 界面的描述( 由BLEND生成)

      其在BLEND当中设计的,在界面的设计过程当中,其是可以可视的设计,但其本质还是产生了相应的配置文件.

     

    对于界面当中的元素访问与事件注册

      3

                                   图: 控件与控件类的绑定 (由XAML2CPP生成)

      4

                                        图:控件事件的绑定(由XAML2CPP所生成)

    事件响应

    8

                                    图: 控件事件的实现,(由AUTOXAML2CPP所生成)

     

     

    项目地创建

    MFC

             MS其提供了一个项目开发模板

    11

     

    在Silverlight for wince 6.0 ,MS没有提供,但我们自己创建一个适合项目开发模板

    12

     

  • 相关阅读:
    小学生需要不断练习的四则运算题,在编程者的手上竟然会变成。。。
    在学习紧张的时候不如放松下来听听歌曲练练单词
    3.基础语法(变量,字符转义和注释)
    .NET基础
    初学.NET
    第七次实验作业
    自我介绍
    第七次实验总结
    第二次实验总结
    实验作业总结
  • 原文地址:https://www.cnblogs.com/pengxinglove/p/1922492.html
Copyright © 2011-2022 走看看