windows下VC界面 DIY系列1----写给想要写界面的C++程序员的话

        很早就想写关于C++ UI开发的一系列博文,博客专栏刚审核通过,就马上开始刷博文,不能辜负自己的一番热血,我并不是写界面的高手,只想通过写博文提高我自己的技术积累,也顺便帮助大家解决界面开发的瓶颈。

能来到这里看我写文章,

第一说明你是windows下开发的程序员!

第二你对漂亮软件界面开发感兴趣!

第三或许你也像我当初一样对C++软件界面开发 无所适从!或许我写的不专业,但是我只想让利用C++编写客户端界面的新手程序员们对C++界面开发没有误区 。

我是从windows开发出身,深知当我们想要去用C++开发界面的时候是多么的操蛋,回头看看我们熟悉的MFC win32SDK
,做出来的界面咋就那么难看,对比网上的那些绚丽软件我们的软件顿时显得档次很低了。做软件界面技术并不是多么高深,也并不是很难,只要找对路子很容易上手。虽然说的看似简单,但是写起来确实非常繁琐复杂,同时 需要对windows消息了如执掌才能写好C++ UI。

首先说说写界面的几种方式,在windows下面:

第一种界面开发方式

基于windows控件的自绘,相信很多程序员都听过MFC自绘等等术语,确实写起来不好写,实际上是MFC不好理解的缘故,真正的术语应该叫做win32界面自绘更能防止新手走进误区,因为MFC就是封装的win32 API,所以MFC界面自绘 就是win32界面自绘.原理大概就是我们拦截windows绘制界面的消息,然后我们代替他来绘制界面,从而实现我们的自定义界面。很多皮肤库通过Hook技术,拦截了windows的UI消息,然后实现了整体UI风格的切换,例如SKinMagic这个皮肤库。这种方式适合写库的人来玩,难度相对高,要对windows消息了如指掌。不过没关系 我会在后续文章分析windows的所有控件的实现 以及消息处理 和自绘。

第二种界面开发方式

基于DirectUI技术的界面,什么是DirectUI技术呢?我们知道在MFC中我们的软件界面都有句柄 ,句柄是一种系统资源。

但是基于DirectUI技术的界面组件是没有句柄的,我们需要自己封装大量的鼠标消息  等等代替默认windows控件的消息。

这么说吧 加入你要用DirectUI技术绘制一个Button  那么你就需要自己实现  例如系统Button的一些状态.比如鼠标点击           Hover  UnHover  Disable 时候 按钮的样子 以及消息的处理. 因为现在你不是在用windows默认的消息机制来实现界面。一切消息你自己封装。

DirectUI技术虽然是 无句柄绘制组件,但是 所有DirectUI界面必须有一个承载窗口作为 渲染窗口来使用,因为你绘图需要设备上下文嘛。

市面上有很多可以代替windows下繁琐的界面开发,后续会专门讲解如何在下面编写界面

Qt的GUI 以及QML都可以快速的开发软件界面,但是有一个缺点是软件包可能会有些大,不过开发效率的确是高    这是本人的擅长之处后期会详细介绍QML开发跨平台界面UI

DUILIB 国内的界面库 比如金山 百度的一些产品中就用到了此库,除了有些小BUG之外 没啥太大的缺点   后期会在文章中介绍

Skin++一个收费的界面库,由于收费 技术不共享不适合我们学习使用 直接X掉

关于界面开发会遵循如下顺序进行:

               1、 一步一步 学习 Win32 SDK 以及MFC中通过 自绘实现界面DIY  系列

                1.1   自绘Button按钮
                1.2   自绘Dialog
                 1.3  自绘菜单
                 1.4  自绘输入框
                 1.5 自绘ComboBox
                 1.6 自绘ListView
                  1.7 自绘Tab 
                  1.8 自绘ScrollBar 
                  1.9 通过HooK实现界面自绘

               2、DirectUI方式  基于 GDI+开发  自定义软件界面组件 系列

                  2.1 GDI+使用入门
                  2.2 GDI+ 实现DirectUI系列

               3、Qt下的界面开发系列

            ·  4、DUILIB快速开发界面系列

以上是我列出的我想要去写的东西,写博文其实很枯燥无味,工作繁忙不能每天更新 但是至少保证每周更新两到三次博文,可能写的技术水平也不入大牛们的眼,但是对于新手来说 能帮助快速进入界面开发的门槛 那么就足够了。~

附上最近写的测试界面



时间: 2024-09-13 03:43:09

windows下VC界面 DIY系列1----写给想要写界面的C++程序员的话的相关文章

我在做windows下的蓝牙4.0通信编程,想买一个适配器,想问下对适配器有要求吗

问题描述 我在做windows下的蓝牙4.0通信编程,想买一个适配器,想问下对适配器有要求吗 还有程序是怎么与适配器联系的呀,初学,有过开发经验的大神帮帮我吧,急急急,拜托啦 解决方案 没什么要求,京东上30块钱的足够了.注意看清楚支持bluetooth4.0就可以.蓝牙的开发除了配对,其它和网络类似.很简单的.会有一个ip地址.不需要你额外的代码.

如何才能写一份好的简历?—— 针对程序员的简历。

  简历,怎么写才好,怎么写才能让用人单位一目了然,怎么写才能给自己多争取点机会?   没有工作经验的估计就头疼了,我写点什么?于是就把自己的课程设计.毕业设计,或者是在培训中心里做的"实习项目"写上了.似乎没什么问题,但是却没有明确表示这个不是在公司的"真实项目".   这个我个人建议不要这么写,培训中心里的项目和真正的项目基本没什么可比性,对用人单位也基本没什么吸引力.应该诚实一点,明确写上这是培训中心里的实习项目.   有工作经验的就好写了一点,把自己做过的项

写给未毕业或者毕业不久的程序员

一.只会编程是不够的     只思考在哪种技术上投资是不够的.毕竟,技术只是一种商品,你不可能只掌握一种编程语言,或者只能够操作一种系统,然后把生意交给老板打理.如果他们只想找个懂代码的机器人,那不如到雇个国外廉价的程序员.如果你想站稳脚跟,必须要深入了解你所处的领域.       事实上,软件工程师不能只会开发软件,应该要成为这个业务领域的专家.在我之前工作过的一家公司,就有这么一个团队.我第一次见到这个公司数据库管理团队的时候有点震惊,因为这个团队里的成员都相当厌烦数据库技术,他们算不上出色

环信的消息列表界面怎么点击跳转到聊天的界面的

问题描述 求环信的消息列表页点击某个想聊天的人就跳装到聊天界面..先在我是在消息列表怎么点击都没反应..求代码 解决方案 http://www.imgeek.org/question/8951

写给师弟师妹的一封信-论在校程序员的学习方向

这是我给研究生刚入学的师弟师妹们的一封信,分享给大家吧 Hi dear team-members:                    我们的项目已经接近尾声,过一段我会去成都把项目部署完成.感谢大家这段时间的辛苦工作.          发这个邮件的原因,是我不知道大家是否在等待我来部署任务,或是可以自主的学习.          首先我想说的事情是,不要指望做好实验室的项目就会找到好的工作:不要指望在一些通信类课上学到有用的东西(如果想去运营商除外):不要指望导师会给你指引正确的学习方向,

Windows下Memcache的安装方法_win服务器

其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家. Windows下的Memcache安装:1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:\memcached2. 在终端(也即cmd命令界面)下输入 'c:\memcached\memcached.exe -d i

windows-Windows下使用OTL连接SQLServer数据库的连接字符串怎么写呢

问题描述 Windows下使用OTL连接SQLServer数据库的连接字符串怎么写呢 大神急救,Windows下使用OTL连接SQLServer数据库的连接字符串怎么写呢?我怎么试都错误,OTL提供的例子中是这么写"scott/tiger@mssql2008",真莫名其妙!网上也没有搜不到答案,求帮助!谢谢 解决方案 太高兴了,终于解决了,做个记录,OTL访问SQLServer是通过ODBC进行的,所以连接字符串也采用ODBC的格式(可参考:http://www.cnblogs.com

Windows下python的配置

Windows下python的配置 希望这是最后一次写关于python的配置博客了,已经被python的安装烦的不行了.一开始我希望安装python.手动配置pip并使用pip安装numpy,然而发现实在麻烦:最终我转向了anaconda阵营. 版本选择 主版本 python27 or python33? or python34, python35? Python版本这么多,搞得各种不统一,真是自己作死. 果断使用Python2.7,python3各种都还不稳定 小版本 python27下有很多

Windows下PHP和Apache的安装与配置

在这里以PHP5为例介绍一下Windows下Apache和PHP5的安装与配置方法. 一 下载安装程序 Apache可以从http://www.apache.org/dyn/closer.cgi/httpd/binaries/win32/下载PHP可以从http://www.php.net下载. 二 安装程序 1 Apache的程序安装相对来说要较为的简单一些,我们从网站下来的是一个Windows下的安装程序,我们可以直接双击运行,这样我们就便利Apache在我们的电脑上安下家来了. 2 我们在