Duilib的使用(優化MFC介面)之 配置專案屬性
一、生成庫檔案
開啟解決方案管理器設定DuiLib為啟動項
點選批生成,生成示例內容
按照標記順序點選,批生成Duilib的exe示例程式
將生成的bin和lib拷貝出來以便於後來的配置專案的專案屬性,我將其放在F:\Duilib下
dll內的檔案
lib中的檔案
二、配置專案屬性
配置所有平臺包含目錄填入Duilib的路徑F:\Duilib\DuiLib,庫目標填入Lib的路徑F:\Duilib\Lib
然後將dll內的檔案複製到CPP所在的資料夾下或者放在生成exe所在的資料夾下
專案原始碼:
//.h檔案
#pragma once
#define WIN32_LEAN_AND_MEAN
#define _CRT_SECURE_NO_DEPRECATE
#include <windows.h>
#include < oleidl.h >
#include <UIlib.h>
using namespace DuiLib;
#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
class CDuiFrameWnd : public CWindowWnd, public INotifyUI
{
public:
virtual LPCTSTR GetWindowClassName() const { return _T("DUIMainFrame"); }
virtual void Notify(TNotifyUI& msg) {}
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam);
protected:
CPaintManagerUI m_PaintManager;
};
//.cpp檔案
#include"FileManagerDlg.h"
LRESULT CDuiFrameWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
LRESULT lRes = 0;
if( uMsg == WM_CREATE )
{
CControlUI *pWnd = new CButtonUI;
pWnd->SetText(_T("Hello World")); // 設定文字
pWnd->SetBkColor(0xFF00FF00); // 設定背景色
m_PaintManager.Init(m_hWnd);
m_PaintManager.AttachDialog(pWnd);
return lRes;
}
if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) )
{
return lRes;
}
return __super::HandleMessage(uMsg, wParam, lParam);
}
// WinMain函式
/*
(w)WinMain 函式有四個引數,其定義如下:
HINSTANCE hInstance: 應用程式當前例項的控制程式碼(譯者注:瞭解 Win32 的基本知識最好是看 Windows 程式
設計第五版)。
HINSTANCE prevInstance:應用程式的前一個例項的控制程式碼。 根據 MSDN 的文件現在此引數將一直是 NULL。
雖然此引數一直是 NULL,如果你想要確定該應用程式是否已經有例項在執行,文件推薦使用 CreateMutex
函式來建立唯一名字的 mutex(互斥體)。 當已經有例項執行時,再次建立 mutex, CreateMutex 函式將會返
回 ERROR_ALREADY_EXISTS。
LPSTR cmdLine (或使用 Unicode 編碼的 LPWSTR):應用程式的命令列由程式外部輸入。允許你傳遞命令給程
序,例如通過 cmd 命令終端,或者是通過快捷方式提供命令引數,等等。
int cmdShow:視窗被顯示為哪個模式的 ID 號(譯者注:例如最小化,正常,最大化等)。
*/
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR cmdLine, int nShow){
//::MessageBox(NULL,"測試","內容",0);
CPaintManagerUI::SetInstance(hInstance);
CDuiFrameWnd duiFrame;
duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);
duiFrame.ShowModal();
return 0;
}
執行結果展示:
相關文章
- SpringBoot(二)_專案屬性配置Spring Boot
- MFC 程式基本介面配置
- MFC 之使用者登入介面
- 尋找寫程式碼感覺(二)之 Spring Boot 專案屬性配置Spring Boot
- 介面測試平臺-89: 全域性請求頭之 單介面使用+UI優化UI優化
- 【python介面自動化】- ConfigParser配置檔案的使用Python
- SAP Commerce Cloud Github 專案的個性化配置 customizationCloudGithub
- Linux的檔案屬性和目錄配置Linux
- 屬性配置檔案詳解(2)
- NoSQL之Redis的配置優化SQLRedis優化
- QT下的darknet-GPU專案屬性QTGPU
- 使用webpack.require優化vue專案的路由WebUI優化Vue路由
- Hive學習之常見屬性配置Hive
- vue面試題之vue專案的優化方案Vue面試題優化
- CMake 屬性之全域性屬性
- 使用 Go 優化我們的介面Go優化
- vue-cli3專案搭建配置以及效能優化Vue優化
- 1688商品詳情資料介面、商品列表介面,商品屬性介面、商品優惠券介面
- Java程式碼修改yml配置檔案屬性Java
- Vue專案優化Vue優化
- 檔案的屬性
- python+pytest介面自動化(16)-介面自動化專案中日誌的使用 (使用loguru模組)Python
- vue專案打包過大,使用cdn優化Vue優化
- Golang 專案之配置檔案Golang
- 外掛化之VirtualApk實戰一:專案配置APK
- CMake 屬性之目錄屬性
- CMake 屬性之目標屬性
- SpringBoot基礎學習(二) SpringBoot全域性配置檔案及配置檔案屬性值注入Spring Boot
- Spring YAML與屬性檔案配置檔案對比 | BaeldungSpringYAML
- SpringBoot配置屬性二Spring Boot
- TypeScript 介面 只讀屬性TypeScript
- TypeScript 介面 可選屬性TypeScript
- vue專案初次優化Vue優化
- CSS 前端頁面渲染優化 屬性 will-changeCSS前端優化
- MongoDB – 使用模式構建之屬性模式MongoDB模式
- 154 、MFC中使用者介面執行緒執行緒
- 【Django drf】檢視類APIView之五層封裝 ApiView的類屬性 drf配置檔案DjangoAPIView封裝
- 檔案屬性