新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 计算机科学论坛计算机技术与应用『 编程心得 』 → windows编程经验大放送 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6058 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: windows编程经验大放送 举报  打印  推荐  IE收藏夹 
       本主题类别: Description Logics    
     葛靖青001 美女呀,离线,快来找我吧!水瓶座1984-2-14
      
      
      等级:大三(研究MFC有点眉目了!)
      文章:168
      积分:595
      门派:XML.ORG.CN
      注册:2010/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给葛靖青001发送一个短消息 把葛靖青001加入好友 查看葛靖青001的个人资料 搜索葛靖青001在『 编程心得 』 的所有贴子 点击这里发送电邮给葛靖青001 引用回复这个贴子 回复这个贴子 查看葛靖青001的博客楼主
    发贴心情 windows编程经验大放送

    【转自互联网】

    windows操作系统是靠消息的驱动的,所有的事件都被封装为各种各样的消息,系统和其他程序通过接受消息,分析消息附带的参数,再分别进行相关的处理,然后完成相关的任务。不管用什么语言,或者什么开发工具,只要是在windows下可以运行的程序,在他的本质上都有一个接受消息、处理消息的循环。这就是win32程序乃至整个windows操作系统本身的运做本质。

        windows自己定义了很多的消息,我们可以使用它,因为这是系统已经定义了的,我们甚至可以直接构造这样的消息发给系统本身,让他来为我们做点什么事情。也可以发一些消息给别的应用程序,当然你发给他的消息他可以接受并可以处理才可以,不然,结果当然是肉包子打狗,有去无回,血本无归啊~呵呵,呵呵我们甚至可以让我们自己的程序接受并且可以处理某些我们自己定义的消息(和windows已经定义了的肯定不能重复三~),然后在程序中的其他部分,比如一个子线程中,发一个这样的消息给主窗口或者其他可以接受并处理我们自己定义的这个消息的地方,然后处理他---------这其实有点象台湾的RPG游戏,比如仙剑三,人物走到某个特定的区域,就“触发”了某个事件,于是,就有怪出来和英雄们战斗啦~

        在csdn上的VC/MFC专区里面见过很多人一头雾水的问高手门类似于下面这样的问题:我用MFC画了一个XX控件,我怎么样可以把他的外观变漂亮一点啊,比如把字体变成XX字体啦,把背景颜色换成XX颜色啦,把线条变....等诸如这样的问题,这样的人,我只能说他太浮躁了,他不了解win32的消息机制,不了解在非游戏的情况下,windows界面上的各种元素是怎么样出来的。其实很简单,MFC只是对API进行了简单的封装,他处理程序的最本质还是消息,这就是你在MFC中仍然可以一大堆WM_XXXX这样和win32中定义的一样的消息了,上面说了,windows是靠消息来驱动的,你用MFC做了一个控件,你的操作很简单,因为MFC、资源脚本文件帮你隐藏了很多细节,比如GDI对象啊,画笔啊等等,MFC和资源脚本当然也不是万能的,他们也不可能知道你想用什么颜色,什么字体,什么线条。他们只是简单的按照windows默认的颜色、线条、字体来为你处理事情,所以当然没有那么好看,你想让他变好看,你就要在程序界面显示之间在程序内部给那个控件发一个它可以接受的消息,让他得到这个消息后,通过某种方式通知windows,让界面变漂亮。这样的事情并不南,因为相关的消息windows已经帮我们预先定义好了的,我们所要做的只是改变消息的参数,再send it to somewhere,就POK了。这也是最原始的方法,当然也是最本质的原理。用MFC做这样的事情其实也一样,所有控件都可以被设置接受父窗口消息的,这样的话,只要给对应ID的控件发一个消息,消息的参数肯定是带有我们要个性化的数据,这样,呵呵,搞定了......

        我在一些公司里面都了解到,很多项目现在都是用DELPH或者BCB写界面,用VC++写低层(DLL),然后“捆绑”在一起,我自己也尝试过这样用(我用BCB来试的,DELPHI我不会用),勉强还过的去,可能因为我BCB用的垃圾的原因吧,总觉得会出现一些莫名其妙的错误或者BUG,现在BCB据说(只是据说)不会出类似现在版本的后续版本了,于是很多程序员都有点担心。因为说实在话,用VC++写界面实在是比较郁闷,但是不是不可以写不出好的界面,效率的问题。象老版本的QQ,界面就是用DELPHI写出来的,新版本的QQ非常的漂亮,但是我不知道是用什么写出来的,但是我敢肯定(也不是100%的肯定,呵呵),低层绝对是VC++做出来的,接口十分的漂亮。漂亮归漂亮,这完全可以用VC++来做到,前段时间就在网上看过一个用VC++写的仿QQ界面,做的十分相似,呵呵,看来VC++功能还是比较强大的。


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    ---人之所以能,是相信能!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/11/16 11:53:00
     
     GoogleAdSense水瓶座1984-2-14
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 点击这里发送电邮给Google AdSense 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/5/2 22:05:31

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    7,187.500ms