参考了网上的一些文章,也有论坛上的一些代码,不过都没有成功,插入成员函数时候不成功,各位牛人给出个主意

解决方案 »

  1.   

    1.首先下载Skin++的免费试用版本。
    2.用VC创建新的MFC工程。
    3.把Skin++的三个文件SkinPPWTL.h SkinPPWTL.lib SkinPPWTL.dll放到工程目录下。随便考两个皮肤文件到工程目录下。皮肤文件名一定别修改..
    4.在工程的stdafx.h里面引入Skin++头文件 #include "SkinPPWTL.h"
    5.在工程的Project->Setting->Link->Input的Object/library modules处加上SkinPPWTL.lib
    6.在你的工程类App里面加上下面两个个函数,注意ThreadKill声明为static:
    void SetSkin(CString strSkinFile)
    {
       DWORD dwThread;
       HANDLE hThread=::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE) ThreadKill,0,0,&dwThread);
       CloseHandle(hThread);
       BOOL bReg=skinppLoadSkin(strSkinFile.GetBuffer(strSkinFile.GetLength()));
       strSkinFile.ReleaseBuffer(); 
    }
    DWORD ThreadKill(LPVOID lp)
    {
       int iCount=0;
       while (iCount++<10000)
       {
         Sleep(1);
         HWND hWnd=::FindWindow(NULL,"UIPOWER");
         if (hWnd==NULL) continue;
         WPARAM wp=BN_CLICKED<<16 | IDNO;
         ::SendMessage(hWnd,WM_COMMAND,wp,0);
         break;
       }
       return EXIT_SUCCESS;
    } 7.在你工程的InitInstance里面调用 SetSkin(皮肤文件);可以看到没有弹出Skin++的注册窗口,这样就可以正常使用了。
      

  2.   

    就一个call,用OD跟一下就好了以前破过
    http://greatws.ys168.com/