长沙理工大学论坛

标题: 开发底层控件原理 [打印本页]

作者: 重新来过    时间: 2007-3-25 10:37
标题: 开发底层控件原理
我们在开发应用程序的时候,用到的多是微软给的控件,要不就是第三方开发的控件。很多时候控件的功能不能达到我们的要求,一般的做法就是利用几个控件组合在一起拼成一个控件,但是这样做很不好,1性能上有影响2我们的写更多的所谓的无用代码来屏蔽那些我们不想要的功能。好啦废话就说到这里,解决办法就是开发一个自己的控件----有点难度
      方法利用微软的atl开发
      利用atl开发控件时可以基于mfc制作控件,这样的工作就会很简单,简单的东西就不在这里讲了。
      今天只讲原理,
      做控件需要注意哪些问题,首先是功能,然后就是利用场所,这里我要说句,我讨厌跨平台,什么开发出来的东西既能在windows上用,有能在linux上用,我感觉没必要,打个比方,我去买手机,我只要知道这个手机能够通话发短信就可以,没有必要知道这个手机还有其他什么功能,如果真的需要mp3,我完全可以自己再买个,手机上带的mp3功能无非是给手机涨身价,对客户没什么用处。还有就是用c开发出来的东西不可能像java那样绝对跨平台。理由不解释
      控件的利用场所:我们用c/c++作东西,不是因为他难或者使用它做出来东西就有成就感。关键在于他的速度快,如果是开发程序,我们使用的更多的还是vb等开发语言。这点大家不用担心,利用vc开发出来的东西能有在vb,.net平台上使用。
      实现: 一个控件需要哪些功能,如何去实现
      比方说控件上的文本信息,颜色,字体等,如果是基于mfc的话就很简单,借口已经做好。
      但是纯粹就是利用atl的话,这些功能我们只能自己去实现。这时你的知道怎么去绘制控件。
至少能认识HDC这个局并,并知道他的作用吧
      最后讲到的就是事件,比方说单击它会有什么发生,而且把这个接口暴露给用户,让用户自己去实现。
      今天就写这么多,以后有时间再接
作者: iwxiaot    时间: 2007-5-1 22:19
你写的这些东西只有熟悉COM和ATL的人才看得懂吧
问一下,你有没有用过CSubclassWnd这个类,也是绘制皮肤子类化时常用的
作者: 重新来过    时间: 2007-6-15 12:52
你说的没错,但是当你懂得原理后,我个人经验告诉我不一定非得懂得这些东西的人才能开发控件。关键在于原理,只要知道事件的原理,我们完全可以脱离所谓的理论。这样才能达到创造的层次。否则就是生产
作者: iwxiaot    时间: 2007-6-15 18:52
可不可以告诉一下你的联系方式,遇到问题好请教一下
作者: 重新来过    时间: 2007-6-22 21:36
好的
guvc@163.com




欢迎光临 长沙理工大学论坛 (http://csust.myubbs.com/) Powered by Discuz! X3.3