1.有一个CSkinDialog类,只要继承它就能有独特对话框风格,现在我想用钩子让其不需要继承,程序中所有对话框就有同样地
  CSkinDialog风格,可是我不知道怎么写?
2.另外我设了三个slider控件,可以改变具有CSkinDialog类风格对话框的色调饱和度亮度,可是调节时必须要得到对话框的句柄进行操作,现在我想让CSkinDialog类具有这种能响应slider控件调节HSL值的方法,但好像必须要有对象才行,不知道肿么办两个问题恳请大虾教教小菜

解决方案 »

  1.   

    1. 参考HOOK换肤原理
    2. 你的三个slider控件和你的CSkinDialog对话框有什么关联?是对话框的子控件还是什么?
      

  2.   

    HOOK+Subclass换肤的参考这里:http://blog.csdn.net/netanimals/article/details/5632242
      

  3.   

    主对话框上有一个按钮,点击弹出一个非模态对话框,上面有三个slider控件just this
      

  4.   

    其实你直接说你想模仿QQ换色的界面就好了。循序渐进实现仿QQ界面
      

  5.   

    那个是SDK写的,我这是MFC,他那个功能太简单,没法用,只能参考
      

  6.   

    你创建模态对话框的时候制定的父窗口是CSkinDialog吗?如果是的话,你的非模态对话框里可以用GetParent()就得到了CSkinDialog对话框类的指针了
      

  7.   

    关键是我想所有的对话框(除了有三个slider控件的非模态对话框)都想有CSkinDialog样式,都能统一调色
      

  8.   

    为slider写一个类,类里边写一个回调,回调里边的数据是和CSkinDialog相关联的。
    在CSkinDialog类里边定义slider对象或者指针对象都行,因为你的slider肯定是嵌在CSkinDialog对话框的对吧,这样做其实是当有鼠标在CSkinDialog对话框拖拉的时候,主窗口直接将数据交给slider直接处理,而slider就可以直接发消息给通知所有的窗口换色,我是这么做的。