WPF与托管C++ ——智能家居GUI框架实现(第1篇)

原创 2016年11月18日 08:19:58

1.问题来源

以前自己做的项目一般是面向工业现场的,所以对产品本身外观并无特别的要求。不过近期做一个智能家居的项目,这个面对的是消费群体,自然对GUI等的美观有很明确的要求。我们购置的硬件提供的一般是VC++的API。这样问题就出现了,用C++如何把界面做漂亮呢?

2.探索过程

在界面的开发方面着实经理了很艰难的一个过程。最初我拒绝用MFC,因为我知道自己的水平很难用MFC做出漂亮的界面。于是我开始在网上搜索界面开发的工具。最初我选定的是wxWidgets这个工具。本来觉得还可以的,但是开发界面感觉自己还是有瓶颈,因为各种原因又转回MFC。最初的效果是这样的。

Boss说这界面太丑了,得改改(好像是有点丑)。这时在网上搜索到了一些皮肤库美化MFC,用起来也很简单(真的很方便,只需要两行C++代码),皮肤我用的是appface。做出的效果如下图

好像是好看了一些,但是我觉得依然有问题。第一是兼容性做的不太好,最大化之后有些遮盖。再有就是不可再设计。(毕竟还是MFC,我用着很困难)
然后就是第三波了。其实最开始就注意到有WPF,因为后台语言是C#以为无法兼容的。有一天google的时候发现有托管C++可以把WPF和C++结合起来编程。当时我真的很高兴,因为我见过WPF做的界面,很漂亮(不过后来我才知道我给自己挖了多大的坑。一是我没学过C#,二是我基本没写过dll工程)。不过经过三周的奋战,终于还是把框架搭起来了,图像可以从摄像头采集回来了。
最终的界面效果如下图
 
这是启动界面

这是登陆界面

这是主页

这是安防系统界面

窗口的布局和配色是从http://www.ui.cn/detail/20025.html网站的图片上抄过来的。不过得到的只是图片,我把它们变成了GUI。我很佩服UI设计师,他们是艺术家,我只是个码农而已。另外目前界面仅仅实现了视频显示功能,其他的按钮还没有相应的后台代码,只有一些界面上的效果。另外这个项目还有很多待解决的问题,比如内存泄漏,CPU占用高。接下来我会陆续介绍整个框架搭建的全过程。包括界面设计,托管类,事件处理,数据库操作等。如果有可能的话会将整个项目上传到github供参考。

3.声明

本文引用的资源均已注明出处,如还有哪里侵犯了广大网友的知识产权,烦请告知,我会及时删帖。本项目仅用于参考学习,并未用于商业用途。

相关文章推荐

[WPF编程]WPF程序内使用MFC框架

主要方法(1): 1.将MFC做的封装成dll或ActiveX控件。 2.使用C++/CLI,在一个工程下可以使用WPF,还能使用MFC。 主要方法(2): 不需要,你可以使用HwndHost来Ho...
  • sjgfmqj
  • sjgfmqj
  • 2016年03月01日 10:35
  • 537

如何正确获得Android内外SD卡路径

忘了这篇文章是在哪里看到了,当时就copy保存了下来,今天转载出来下。 外置sd卡路径,也许很多同学在平时的工作中并不会用到,因为现在很多机型都不支持外置sd卡(这也是Google目标),所以并不用考...

RecyclerView踩坑之输入法弹出数据自动滚动

RecyclerView在使用过程中确实能称之为神器,但也难免会遇到各种问题,接下来就把我今天遇到的问题来记录一下。 背景是建立在IM上的,我们使用环信来做即时通讯。聊天窗口就是使用Recycler...

树莓派实现智能家居——支持中文的语音识别台灯

最近重新折腾我的树莓派,

树莓派实现智能家居——支持中文的语音识别台灯

最近重新折腾我的树莓派,发现这货还能做语音识别,于是想做个什么东西出来,最后还是对宿舍那个一直让我有点不爽的台灯动手了。因为台灯夹在比较高的地方,每次都要站起来才能够得到开头,这让我有点不爽,要是可以...

智能家居GUI设计 ---- 启动界面设计(第4篇)

本文主要介绍智能家居项目的启动界面设计,其中提供了三种方法。

某智能家居项目框架学习总结

之前负责过一个智能家居项目的二次开发,苏州一家公司做的,项目还是分了好几个系统,对业务流程的不同部分进行了划分,我是此项目的主要负责人,通过老师的指导,对这个项目也有了一些了解。此项目运用了一些框架,...
  • hacke2
  • hacke2
  • 2014年06月18日 23:38
  • 7448

智能家居项目(2):项目工程框架的搭建

项目管理器: Linux中的项目管理器“make”有些类似于windows中的Visual C++里的“工程”,它是一种控制编译或者重复编译软件的工具,另外,它还能自动管理软件编译的内容、方式和时机,...
  • waldmer
  • waldmer
  • 2014年08月12日 20:22
  • 1503
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF与托管C++ ——智能家居GUI框架实现(第1篇)
举报原因:
原因补充:

(最多只允许输入30个字)