首先声明我不是为了给谁打广告,更没有收到一分一厘广告费。:)
为了免受病毒和流氓软件的侵扰我的电脑上安装了《瑞星卡卡》和《360安全卫士》这两款免费的工具软件。这两个软件有一个共同特点就是界面很清新很简洁,而且程序文件也不是很大。
而我们平时做的Win32程序和MFC程序不仅千篇一律而且大多灰头土脸。这里没有贬低微软产品和各位同行所写软件的意思,只是想探讨一下他们是怎么做到的。欢迎各位踊跃发言。

解决方案 »

  1.   

    在网上还发现一款叫blin的文件下载软件,只有100K左右,界面也是清爽得很,不知道是怎么做到得。
      

  2.   

    界面很清新很简洁: 界面库
    程序文件也不是很大:Dll一大堆且很大 /\︵/\ 
    (=^∶^=)
    (~)︾(~)
    (~)︵(~)
      

  3.   

    用SDK方式,写得时候避免会用到很占代码的东西,比如string,CString之类的东西
    尽量少用C运行库的东西,用相同功能的api。等等。
    总的说来,要么使用系统自带的东西,要么自己做,代码就很小,但开发成本高了。
      

  4.   

    第一阶, 像VC/MFC论坛上提问的问题一样, 什么CDialog, CToolBar....这些MFC的基本界面类. 这些界面类做出来的界面是土, 但是不要看不起这样的界面. 因为他是基础, 不管以后你想做出360SAFE这样的界面, 这些基础都是必须用到的. 像360SAFE, 其实把她漂亮的外衣扒下来, 和你用MFC基本类做的一样. 一个对话框, 上面的工具栏是用若干个BUTTON做的. 工具栏右边的标志用CStatic或图片类都可以, 加上图片, 加上超链接功能. 下面更不用说了, 动态创建的属性页. 属性页里是什么按钮了, 列表框了, 之类的这些其它的控件功能. 其实说白了, 和你在论坛或书上学到的是一样的, 只不过用了特殊的功能函数, 在这些控件上画漂亮的图片或图形. 其它的功能是用MFC基本控件一样的. 上面这些, 如果你经常在MFC论坛上, 你肯定可以用基础类把这些界面做出来, 只是有点土. 但记住, 基本的原理是一样的, 什么消息响应之类的, 是一样的.第二阶, 用XTreme Toolkit Pro这样的界面库把你用到过的什么对话框, List, Button, Static, 之类的都换成XTreme Toolkit Pro的控件. 这时你发现, 原来以前我学的都没白费, 都用上了, 原理是一样的, 只是把CButton换成XTreme Toolkit Pro的按钮类, 但是同是按钮, 同样的消息响应, 同样的处理代码. 人家的就是比CButton漂亮. 其它的控件一样的道理. 只是把MFC的灰头土脸的控件换成了XTreme Toolkit Pro的控件了. 但消息响应, 处理代码是一样的. 这时你已经能做出360safe这样的界面了. 其实在第一阶时, 你已经能做出来了, 只是你还不知道自己能做到. 甚至有些人在那个阶段就放弃不学了. 认为MFC做不出好界面, 当你用界面库之后, 才发现, 要做好界面, 第一阶的基础很重要. 当然掌握界面库使用也重要.第三阶, 比较难了, 自己做控件. 自己从CButton继承类, 自己写XP界面的Button代码. 就是自己画出个BUTTON出来. 这时你唯一能参考的是源代码. 网上开源的源代码, 也可以参考XTreme Toolkit Pro的源代码. 这时就比较麻烦了, 到论坛问是没有人可以告诉你的了. 你想写个Outlook类型的Bar, 只能自己从CWnd派生. 而你唯一能参考的, 就是源代码, 如XTreme Toolkit Pro的源代码. 而其中又涉及到很多的以前没有遇到的MFC方面的知识, 又问不到人. 很可能不了了之了. 其实到第二阶用界面库时, 论坛上已经没有讨论的人了. 何况到了第三阶. 如果你以后想从界面方面发展, 就自己写界面吧. 看源代码, 网上有什么国外的源代码网站. 但要谨慎. 到招聘网站上看看, 到底有多少家公司专门招聘写界面的程序员. 别到最后, 精力都用到写界面上, 其它的方面没学. 结果没有几家公司招写界面的. 最后问你JAVA, C#, 网络, 其它方向的知识都不会. 结果成了只会化妆的花瓶, 没多大用处. 还不如当初写个网络方面的软件, 而界面用别人的. 这样招聘网络方面的程序员时, 把你的程序拿出来, 把网络核心算法一讲, 人家一看有经验就要了. 而你只是会写漂亮的界面. 在同等学历, 条件下, 当然招有经验的了. 
    其实现在招网络方面, 数据库方面或是其它方向, 用JAVA, C#语言的肯定比招写界面的要多吧.
      

  5.   

    所以从市场的角度上讲, 写界面最好用别人的界面库, 自己写太累了, 太难了. 招聘的又少.
    这样, 到MFC/论坛上或书上学习MFC基本原理, 响应机制, 代码处理. 再学会用XTreme Toolkit Pro之类的很三方界面库就可以写出漂亮的界面了. 而要把自己主要精力放到现在及未来都有发展前途的核心专业领域. 而不是放到什么界面库的自己实现上. 这样才有很好的就业市场.
      

  6.   

    告诉你,那些也是微软开发工具 sdk写出来的。什么语言什么工具当你用熟悉以后其实开发效率都是一样,关键在于是否随心所欲 游刃有余
      

  7.   

    分析一下360SAFE界面, 大家共同探讨.
    首先是美工和软工进行界面设计, 并由美工画出整个界面的图像出来(一张整图), 然后cut成一个个部分, 如标题栏, 各个按钮图片, 背景图片. 这方面的话, 可以看如何做QQ皮肤的教程. 我想如果你能自己按网上教程做个QQ皮肤, 自己做个360SAFE界面也一样. 如何设计界面? 网站www.chinaui.com看看. 
    GUI设计禁忌:程序员和网页设计师界面设计必读 
    WEB 软件用户界面设计指南 
    Microsoft Windows 用户界面开发
    MICROSOFT WINDOWS 用户经验  
    不过书都没的卖了, 按它的英文名到EMULE上下载EBOOK.
    china-pub上搜索:用户, 界面, 交互.
    不过这些不是代码, 要学代码只能看别人的源代码, 没有任何文字资料可供参考. 
    上面的书只是在理论上进行讲解, 包括交互, 设计原理以及从美术设计的角度. 但按软件工程的顺序讲, 在做工程时是要先做系统分析的, 分析系统有哪些需求, 功能. 而上面的这些实质上就想当于进行系统分析过程了, 从整体上规划程序的功能, 以及界面的安排. 因此, 按软件工程上讲是非常重要的阶段. 
      

  8.   

    现在网上有很多人做QQ皮肤, 都非常漂亮. 可以参考他们写的教程. 当然是从艺术, 美工, 设计的角度, 而不是程序员的角度.我考虑360SAFE是基于对话框的程序(没有标题栏), 它的栏题栏是画的. 是对话框客户区的一部分. 而标题栏上的按钮(最大, 最小, 关闭)也是BUTTON派生类. 上面显示的图片.
    工具栏也是按钮组成的, 上面显示图片. 这些图片可以用资源编辑工具提取出来. 
    而TAB页, 也是按钮, 框架是图片制造出框架的假象, 也是图片实现的. 只不过BUTTON图片与框架正好吻合(原本就是一张图片CUT出来的). 结果就好像是属性页的感觉. 而里面的内容, 就是响应按钮的消息, 动态创建控件及其布局的结果. 如我们点击卸载, 并点击基本状态时, 就动态的创造其中的内容. 各种图片, 按钮, 文字等等.所以我想, 如果我们用BCGCONTROLBAR PRO或XTREME TOOLKIT PRO, 加上论坛上学到基本MFC机制和界面使用方法. 也可以做出这样的界面. 
    困难在于我们如何去实现一个BCGCONTROLBAR PRO或是XTREME TOOLKIT PRO这样庞大的界面库. 或是范围再小些, 我们如何实现一个XP类型的按钮类, 如何实现一个XP风格的界面控件. 而这些无论是在国内, 国外的论坛或是书籍上是找不到任何参考资料的. 唯一的途径是看源代码. 如XTREME TOOLKIT PRO的源代码. 或是codeguru, codeproject上的源代码. 虽然也是MFC实现, 但面对一个控件几万行的代码, MFC未公开的机制, 技术. 再乘上几十个界面控件就是几十万行的代码. 是否能有心情研究的下去. 这都是一个问题. 曾经在共享软件论坛上看到有个做换肤共享软件的, 用了若干年研究的换肤软件, 经营若干时间后, 挺不住了, 连网站带软件全部卖了几千元.
      

  9.   

    to register_nonetech,说得很好啊.
    我现在写换肤类的界面,网上很少资料,顶多看看公司以前的代码,好郁闷来着
      

  10.   

    直接用CHtmlDialog来做主界面,然后就轻松了,剩下的是网页的问题另外Lz所说的“微软产品”是指什么,在我看来,只要你的程序的界面能够和时下的“微软产品”相似就不错了