http://tieba.baidu.com/p/3214173167

在我发了键鼠模拟器的那个帖子后,很多人问我界面是怎么做出来的,我想既然大家对做界面那么感兴趣,那我就专门开个贴来聊一下怎么用C/C++做高大上的软件界面。当然,一个很漂亮的软件界面会让人觉得你的程序很高端,面试的时候也会给面试官一个很好的印象,但是很多人刚开始看书学C时,书上老是用printf来打印输入输出,导致很多人以为C只能在那个黑框框下用,不实用,很有很多人认为做界面只能用Java或C#,C/C++不能做界面,这是极大的误会,C/C++不仅擅长底层开发,做界面那更是小菜一碟,用C/C++做界面比Java或C#都更灵活,在我看来,只要C/C++和MFC学通了,任何界面你都做得出来,随便找一个软件,你都可以克隆出一个一模一样的界面来。不信啊?后面你就会见识到。

下面先看一个用C语言做的软件,快速窗口切换程序,这个程序是一年前写的,当时觉得Windows7的窗口切换太麻烦了,特别是那些有多个标签页的软件,每次都要在任务栏点一次,再在弹出来的窗口略缩图里再点一次,如果要经常切换窗口就会感到特别不爽,觉得微软这设计真是脑残,这个程序也很简单,就是当用户按下鼠标中键后,就弹出一个菜单来,菜单里列出了所有窗口,点一下就可以快速切换过去了。菜单界面如下图所示

这程序仅仅用到了C,所以体积很小,只有80K,占用资源也很少,其原理很简单,先用SetWindowsHookEx函数加载一个鼠标钩子来监视鼠标中键的按下动作,一旦中键按下,就在光标的旁边用CreateWindow函数创建一个窗口,然后在窗口里创建多个按钮,你可以看到,在按钮里既有图标,又有标题,这种按钮是不是很酷,其实实现很简单,就调用DrawIcon()和SetWindowText()2个API就可以了。感兴趣的可以去我的博客下载程序源代码,可能有人会说这太小儿科了,确实,这个程序界面比较简单,没什么好多讲的,那什么软件的界面比较高大上呢,迅雷看看播放器,这个怎么样,够高大上吧,几亿人都在用呢,但是我告诉你,我要克隆出一个跟它一模一样的程序界面来,那也很简单,当然我只是实现它的界面,它的播放下载功能我可不实现,最终程序的界面效果如下图所示

是不是一模一样,连光标移到按钮上的发光效果也跟原版程序一样,这里面最难实现应该是它的进度条了,一边蓝色一边灰色可费了我一定时间,程序是用C++和MFC做的,代码会比窗口切换程序复杂一点。要做这样的界面也不能一蹴而就,首先你要懂做自绘风格的按钮,下面这个程序演示了如何创建各种形状的按钮

它的原理就是先从CButton派生出一个子类CRoundButton2,然后在CRoundButton2类的DrawItem()把按钮画上去,也不难,具体实现可以参考源代码。正所谓万丈高楼平地起,所有看起来很漂亮的界面都是由一些比较简单的技术堆砌而成的,下面这个例子程序则教你如何用一些比较简单的代码对窗口做出不同的显示效果,界面有3个按钮,提供了3种不同的效果,如下图所示。

怎么样,看完以上例子,谁还敢说C/C++就只能小黑框,谁还敢说C/C++不能做界面,以后谁还敢这么说你就跟他急。对以上程序感兴趣的,可以到我的博客去下载源代码。高手就不用看了,免得你们看了又要喷,这不是给你们看的,呵呵。
源码: 新浪博客地址+杠u杠2658627183
想把源码传到百度网盘上的,可是百度网盘可真是垃圾啊,怎么传都传不上去。

教你如何用C/C++做高大上的软件界面相关推荐

  1. 4个技巧,教你如何用excel绘制出高大上的图表

    为什么你的报告中的图老板总是瞧不上,为什么我们觉得这图可以了,老板却总是不满意,不要你觉得,要老板觉得. 很多人有一个误区,就是分析很重要,展示不重要,这就好比你有满腔的热血.满腹的才华,却茶壶里煮饺 ...

  2. 如何使用计算机自带的刻录软件,win7自带刻录软件怎么用?win7如何用自带的刻录软件...

    win7系统自带有很多实用的功能,可能一些功能大家都比较少了解到,比如win7自带刻录软件,win7自带刻录软件怎么用?其实刻录软件可以帮助用户录制一些视频,保存一些重要的数据资料.接下去系统城小编教 ...

  3. 教你如何用VB做控件*.ocx

    教你如何用VB做控件*.ocx 一个控件有很多事件如:Click.MouseDown.MouseUp.MouseMove等.要触发这些事件都需要你加入代码.在控件的声明处加入Public Event ...

  4. 这十套练习,教你如何用Pandas做数据分析

    最新工作比较忙,python这块搁置了好久都没有好好学习以及更新相关学习笔记,立下flag,争取两天更新一个练习题,到十一月初更新完这块内容 练习1-开始了解你的数据(2021-11-02已完成) 练 ...

  5. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  6. HTML字体怎么显示,教你如何用CSS来控制网页字体的显示样式

    教你如何用CSS来控制网页字体的显示样式 更新时间:2007年02月27日 00:00:00   作者: HTML对于<font>内容</font>卷标只有: <font ...

  7. 自制vue组件通信插件:教你如何用mixin写插件

    "vue-unicom"的作者:szpoppy,如果觉得对你有用,请一定点个star 这个项目虽然是szpoppy的个人项目,但是在szpoppy公司内是在大面积使用的,一直由sz ...

  8. PHP 中华如何用命令连接数据库,教你如何用php pdo连接数据库

    原标题:教你如何用php pdo连接数据库 导读 这篇文章主要介绍了php pdo连接数据库操作,结合实例形式分析了PHP使用pdo连接数据库并执行事务相关操作技巧,需要的朋友可以参考下 pdo连接数 ...

  9. 用计算机专业怼人,专业示范,教你如何用所学专业知识“怼人”

    原标题:专业示范,教你如何用所学专业知识"怼人" 用自己所学的专业怼人是一种什么体验? 微博上有一个很好玩的话题: #用你学的专业留一句怼人的话 其他人用自己的专业回怼# 终于发现 ...

  10. linux 计算器 c语言,大神教你如何用C语言实现科学计算器

    原标题:大神教你如何用C语言实现科学计算器 用C实现的科学计算器 使用C语言写的科学计算器,可以实现四则运算.三角函数运算.指对数运算:优先级正确:能智能屏蔽空格,能识别输入错误和运算错误,能实现继续 ...

最新文章

  1. jenkins邮件通知功能
  2. Ansible自动化运维工具使用
  3. c语言中文件是如何存储的,急求如何将下列C语言程序数据存储到文件中?
  4. 基于python的聊天软件的设计与实现_Python基于TCP实现会聊天的小机器人功能示例...
  5. 在ubuntu上安装Oracle Java SDK
  6. 转搞网络的也可以很有柴的!
  7. 中琛源携手台江县积极践行山区青少年体育公益
  8. oracle 函數索引(1)
  9. VMware windows2003系统安装教程
  10. 局域网arp攻击_图解ARP协议(二)ARP攻击原理与实践
  11. Android Launcher——ui框架,android混合开发专利
  12. 影响因子在10的计算机杂志什么水平,国人无人发表的TOP期刊,影响因子翻倍,5分变10分,不收版面费!...
  13. [含lw+源码等]微信小程序在线考试管理系统+后台管理系统[包运行成功]
  14. 关于共享单车违规乱停治理方案拟定(畅想共享单车未来五年的战略方向)
  15. 概率论考点总结类型27 上侧α分位点
  16. 论文的开题报告是什么样的?
  17. gcc 编译参数 -fPIC 的详解和一些问题
  18. LaTex “too many unprocessed floats” 解决
  19. 全国第四轮计算机学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
  20. 慢性子的网易,走不快的B端?

热门文章

  1. 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-20期...
  2. 计算机开机进不了bios,开机进不了bios,教您怎么解决win8开机进不了bios
  3. 关于坐标系(大地坐标、平面坐标、投影、北京54、西安80、WGS84)的一些理解
  4. F28335舵机控制器(3)——第三版PCB
  5. 提示磁盘被写保护怎么办?
  6. r740服务器固态硬盘和机械硬盘一起用_搭载固态硬盘的服务器究竟比搭机械硬盘快多少?...
  7. php eot,php中理解print的EOT分界符
  8. 持续学习:(Elastic Weight Consolidation, EWC)Overcoming Catastrophic Forgetting in Neural Network
  9. UVC 摄像头驱动(二)描述符分析
  10. 使用python批量下载ensembl数据库指定类型的文件