DuiLibはオープンソースのwin32インターフェイスライブラリです。ダウンロードリンク:https://github.com/duilib/duilib
一部のウイルス対策ソフトウェアと同様のインターフェイスを作成できます。効果はまだ比較的良好です。
最初にデモをダウンロードして見てください。
現在の開発ツールはVS2010Expressバージョンのみです。それを開いて見てください。DuiLibプロジェクトはソースコードです。MFCDemoは例です。
VS2010 ExpressはMFCをサポートしていないため、問題があり、デモを実行できません。ソリューションにwin32プロジェクト、空のプロジェクトを追加します。名前はduidemoです。
新しいdemo.cppを作成します。
#include "..\DuiLib\UIlib.h"
#ifdef _DEBUG
# ifdef _UNICODE
# pragma comment(lib, "DuiLib_ud.lib")
# else
# pragma comment(lib, "DuiLib_d.lib")
# endif
#else
# ifdef _UNICODE
# pragma comment(lib, "DuiLib_u.lib")
# else
# pragma comment(lib, "DuiLib.lib")
# endif
#endif
using namespace DuiLib;
class TestFrame : public WindowImplBase
{
public:
TestFrame(){}
~TestFrame(){}
virtual CDuiString GetSkinFolder()
{
return _T("");
}
virtual CDuiString GetSkinFile()
{
return _T("demo.xml");
}
virtual LPCTSTR GetWindowClassName(void) const
{
return _T("TestWindowClass");
}
virtual LRESULT OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
{
PostQuitMessage(0);
return 0;
}
virtual void Notify(TNotifyUI& msg)
{
if (msg.sType == _T("click"))
{
if (msg.pSender->GetName() == _T("buttonName1"))
{
::MessageBox(NULL, _T("buttonName1 has been clicked"), _T(""), NULL);
}
}
}
private:
};
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow)
{
CPaintManagerUI::SetInstance(hInstance);
HRESULT Hr = ::CoInitialize(NULL);
if (FAILED(Hr)) return 0;
TestFrame* pFrame = new TestFrame();
if (pFrame == NULL) return 0;
pFrame->Create(NULL, _T("TestWindow"), UI_WNDSTYLE_FRAME, 0, 0, 0, 0, 0);
pFrame->CenterWindow();
::ShowWindow(*pFrame, SW_SHOW);
CPaintManagerUI::MessageLoop();
::CoUninitialize();
return 0;
}
ビルドしますが、libファイルが見つかりません。
絶対パスを使用して確認してください。それでもlibファイルが見つかりません。サンプルフォルダを開くと、libではなくdllのみが含まれていることがわかります。
Libとdllは、DuiLibプロジェクトの生成、このプロジェクトの生成、エラーの生成、Expressバージョンに問題がある可能性があることによって取得されます。
次のように、ネチズンによって生成されたlibとdllのコピーをダウンロードします; duidemoフォルダーにコピーします;生成し、失敗します;
ネチズンによって生成される次のlibは次のとおりです。
生成は成功します;次のように;現在のコンピュータのアプリケーションポリシーは追加のexeの操作を制限します、あなたはそれを自分で生成することができます;簡単な例はただのウィンドウとボタンです;
インクルードされたヘッダーファイルには他のヘッダーファイルが多数含まれているため、元のソリューション構造に基づいている必要があります。