请问在VC下实现皮肤使用的是什么原理?怎样才能改变控件和窗口的外观?(请尽量详细一点)谢谢!!!!!

解决方案 »

  1.   

    贴图原理:)
    改变控件和窗口的外观:
    int SetWindowRgn(
      HWND hWnd,     // handle to window
      HRGN hRgn,     // handle to region
      BOOL bRedraw   // window redraw option
    );
      

  2.   

    使用皮肤其实就是自己拦截各个控件得WM_PAINT以及其它的一些附属消息,要做到拦截,最好就是通过HOOK来实现:
    SetWindowsHookEx(WH_CBT, HookCBTProc, NULL, ::GetCurrentThreadId());
    这段语句加在CWinApp::InitInstance()里,
    这样在程序启动时该钩子能够拦截到所有窗口的建立,有了窗口句柄,拦截消息就是件很轻松的事情了!
    不过在具体实现时会有些难度,包括滚动条的替换,窗口的边框及Caption的重绘,以及系统菜单的处理,还有Static控件的透明显示等等,不过只有想不到的,没有程序做不到的,祝你成功!
      

  3.   

    资料没有,我现在也在摸索中,但只要你对windows message比较熟的话,是没有太大问题的,事实上很多东西都要靠自己的,不然还叫什么程序员,都改名蓝领得了:)
      

  4.   

    http://www.skin-studio.com ,皮肤工作室,给你最新的皮肤开发方法