如何将Skin++试用版本变为正式版本(原创:C++菜菜 QQ:86226337)
作者声明:本文以学习交流为目的,以下将Skin++试用版本变为正式版本方法只限于学习研究领域,作者不承担任何法律责任!若转贴请保留作者及本声明,谢谢!
1.首先到
www.uipower.com 上面下载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 CClientApp::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 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 CClientApp::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;
}
{
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里面调用 theApp.SetSkin(皮肤文件);可以看到没有弹出Skin++的注册窗口,这样就可以正常使用了。