初步了解win32界面库DuiLib

DuiLib是一个开源win32界面库;下载地址:https://github.com/duilib/duilib

可以做类似一些杀毒软件的界面;效果还是比较好;

先下载一个demo看一下;

当前开发工具只有VS2010 Express版本;打开看一下;DuiLib项目是源码;MFCDemo是示例;

    VS2010 Express不支持MFC,所以有问题,不能运行demo;  在解决方案中添加一个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文件;打开示例文件夹,原来它只有dll,没有lib;

lib和dll是生成DuiLib项目得到的;生成此项目;生成出错;可能express版本有些问题;

下载一份网友生成好的lib和dll,如下;拷贝到duidemo文件夹;生成,失败;

再下一份网友生成好的lib,如下;

生成成功;如下;当前电脑的应用程序策略限制不能运行额外的exe,可自己生成看;简单示例只是一个窗口和按钮;

必须按它原来的解决方案结构来;因为包含的头文件又包含其他一堆头文件;
 

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/113623472