初步了解win32界面库DuiLib
生活随笔
收集整理的這篇文章主要介紹了
初步了解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 #endifusing 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,可自己生成看;簡單示例只是一個窗口和按鈕;
必須按它原來的解決方案結構來;因為包含的頭文件又包含其他一堆頭文件;
?
?
總結
以上是生活随笔為你收集整理的初步了解win32界面库DuiLib的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3d max 安装和导入rvt模型失败
- 下一篇: Directx 顶点和顶点缓存