Duilib的使用(優化MFC介面)之 配置專案屬性

開發農民發表於2018-07-31

一、生成庫檔案

開啟解決方案管理器設定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;

}

執行結果展示:

相關文章