现在要求项目完成后可以实现灵活的换皮肤的功能,请问有什么好方法?(代码不能再次被编译)请高人指点,感激不尽!

解决方案 »

  1.   

    http://vibration.cnblogs.com/category/1331.html?Show=All
    看看里面介绍的skin技术,用com实现
      

  2.   

    不是资源文件,INI、TXT或者XML文件都可以啊,或者你自定以一个文件好了。
      

  3.   

    这么复杂。偶不会com。请问还有什么简单易行的好方法吗?谢了先!
      

  4.   

    这不就是要让你开发一套界面库吗?我的界面库从2005年5月1日开发的,到现在免费版才刚出来,听你的口气你还不知道怎么做呢。我开发的时候已经掌握了所有的相关技术了。所以等你开发出来,估计黄花菜都凉了。
    如果不嫌弃,可以使用我的界面库。到www.iuishop.com下载免费版。完全符合你的要求,就和为你定制的差不多了。我用的配置文件叫the.ui,是ini格式的。为此我还提供了皮肤编辑器, 所见即所得。技术上就是和楼上说的差不多,只是实现起来比较麻烦。
      

  5.   

    to:回复人: hsd2004() ( ) 信誉:100  2006-02-15 12:48:00  得分: 0  
       to 羽战士:你说的具体如何实现呢?自己定义一个文件,但是不能要求项目再次编译,可以吗?如能详细告知,小弟感激不尽。
      
    自己写一个文本文件,把控件的位置,坐标,属性什么的写到里面。然后程序去读它,然后根据它的值去生成相应的控件。由于这个文件是在硬盘中的。所以不需要重新编译源文件。需要的是修改这个文本文件。
    类似下面的格式:
    [MediaPlayer_STA_0]
    Caption=组乐:随机选择
    Nowrap=1
    Rect=69,65,166,86
    IDs=IDC_STA_1
    R2L=0
    HorAlig=3
    VerAlig=1
    Type=9
    以上是从我的the.ui中摘出的,当然你可以根据你的项目的实际情况来修改。
      

  6.   

    本版块我有一个仿MediaPlayer的贴子,里面有源代码。可以参考一下。
      

  7.   

    to:hsd2004() ( ) 信誉:100  2006-02-15 13:43:00  得分: 0  
      楼上的兄弟,你的代码在我的机器上怎么不能编译通过?
      
    把输入的错误信息贴出来。msn:[email protected],加我。
      

  8.   

    使用WinTrans软件对Exe直接进行资源替换
      

  9.   

    to:回复人: hsd2004() ( ) 信誉:100  2006-02-16 13:10:00  得分: 0  
       我想请问不需要借助第三方工具的方法,譬如说只要在代码里怎么弄就可以实现。请高手指点,万分感谢!
     
    不借助第三方的工具,实际上就相当于第三方的工具由自己开发了。如果你的工程非常简单,比如只有一个窗口,里面只有几个button这么简单,那什么方法无所谓了,因为太简单了。但如果窗口比较多,控件类型比较多(所有的控件可能都被用到),如果你还是不用第三方工具,并且自己也没有开发过这样的工具,那么无异于愚公移山了,不是说不行,只是工作量太大。并且如果这个项目完后还有另一个类似的项目,地么重复的工作又要做一遍。这就好比你说从北京到上海怎么去,不用第三方交通工具,那么只有步行了一样,或者自己造车。其实如果不想用第三方库的话,你可以试着分析它的原理,一样可以成功的,总比埋头苦想好。
      

  10.   

    pomelowu(羽战士) :我最近因为项目需要,也在琢磨这个事情,请教12:
    (1)焦点如何设置?
    (2)滚动块这样的皮肤如何实现?
      

  11.   

    关于焦点,可以用虚线框代替。
    关于滚动条,现在一般的做法是把原来的去掉,从CWnd派生一个类自绘,然后放在原来的位置。