您的位置:首页 > 产品设计 > UI/UE

VS 2008 Duilib 环境配置与第一个工程

2017-04-05 16:29 295 查看
下载一个源代码,本人使用的是duilib391  如若需要  请联系QQ:728297725

DuiLib工程右键->配置属性->c/c++->代码生成->运行库,编译项目中的DuiLib工程,编译成各个运行库。

启动VS2008,创建win32空项目:

(1)创建stdafx.h

#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)

#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_

#pragma once

#define WIN32_LEAN_AND_MEAN

#define _CRT_SECURE_NO_DEPRECATE

#include <windows.h>

#include <objbase.h>

#include "..\..\DuiLib\UIlib.h"

using namespace DuiLib;

#ifdef _DEBUG

#   ifdef _UNICODE

#       pragma comment(lib, "..\\..\\Lib\\DuiLib_ud.lib")

#   else

#       pragma comment(lib, "..\\..\\Lib\\DuiLib_d.lib")

#   endif

#else

#   ifdef _UNICODE

#       pragma comment(lib, "..\\..\\Lib\\DuiLib_u.lib")

#   else

#       pragma comment(lib, "..\\..\\Lib\\DuiLib.lib")

#   endif

#endif

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)

(2)创建stdafx.cpp

#include "stdafx.h"

#if defined _M_IX86

#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_IA64

#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#elif defined _M_X64

#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")

#else

#pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

#endif

(3)创建main.cpp

#include "stdafx.h"

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)

    {

        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);
MessageBoxW(NULL,L"Hello world",NULL,NULL);

            return lRes;

        }

        if( m_PaintManager.MessageHandler(uMsg, wParam, lParam, lRes) ) 

        {

            return lRes;

        }

        return __super::HandleMessage(uMsg, wParam, lParam);

    }

protected:

    CPaintManagerUI m_PaintManager;

};

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPSTR /*lpCmdLine*/, int nCmdShow)

{
CPaintManagerUI::SetInstance(hInstance);

    CDuiFrameWnd duiFrame;

    duiFrame.Create(NULL, _T("DUIWnd"), UI_WNDSTYLE_FRAME, WS_EX_WINDOWEDGE);

    duiFrame.ShowModal();

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息