duilib环境配置以及简单入门介绍
内容全部为转载:
VS2013的编译,https://www.cnblogs.com/Alberl/p/3342030.html
duilib框架介绍,以及VS2013配置,创建工程,调试代码部分:
https://blog.csdn.net/lanuage/article/details/52040306
https://blog.csdn.net/GG_SiMiDa/article/details/70792890
具体为:
- 下载duilib-master;
- 解压后用VS编译器编译一遍,编译部分参考第一个网址;
- 配置VS环境, 调试代码,参考第二个网址和第三个网址;
环境配置为:
在环境变量的Path变量中添加对应的dll路径,这样就不需要将dll文件拷贝到自己项目的exe文件所在位置处。
创建工程,测试代码
我这里为,创建了一个win32工程,选择空项目,添加.cpp文件,文件内容为:
#include <DuiLib\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
#endifclass CFrameWnd : public CWindowWnd
{
public:virtual LPCTSTR GetWindowClassName() const{return _T("FrameWnd");}virtual void OnFinalMessage(HWND hWnd){delete this;}
};int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPTSTR lpCmdLine, int nShowCmd){// new一个窗口对象CFrameWnd* pFrame = new CFrameWnd;// 注册窗口类、创建窗口pFrame->Create(NULL, _T("sample01"), UI_WNDSTYLE_FRAME, UI_WNDSTYLE_EX_FRAME,100, 100, 800, 600, NULL);// 显示窗口、进入窗口消息循环pFrame->ShowModal();return 0;
}
显示效果为:
duilib简介:
国内首个开源 的directui 界面库,它提供了一个所见即所得的开发工具——UIDesigner,它只有主框架窗口,其余的空间全部采用绘制的方式实现,所以对于控件来说没有句柄和窗口类等内容,它通过UIDesigner工具将用户定义的窗口保存在xml文件中,在创建窗口时读取xml文件中的内容,来绘制相应的控件。目前有许多界面采用duilib编写,大家可以去网上搜集相关资料。
窗口显示前的最后一个函数为:
CWindowWnd::Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwStyle, DWORD dwExStyle, int x, int y, int cx, int cy, HMENU hMenu)
{if( GetSuperClassName() != NULL && !RegisterSuperclass() ) return NULL;if( GetSuperClassName() == NULL && !RegisterWindowClass() ) return NULL;m_hWnd = ::CreateWindowEx(dwExStyle, GetWindowClassName(), pstrName, dwStyle, x, y, cx, cy, hwndParent, hMenu, CPaintManagerUI::GetInstance(), this);ASSERT(m_hWnd!=NULL);return m_hWnd;
}
//::CreateWindowEx(...)为win32 API函数,该函数运行完即显示窗口,
总结
duilib的基本框架,下面来总结一下:
- CPaintManagerUI::SetInstance(hInstance);设置进程的实例句柄,这个值会在注册窗口类时使用
- 在CWindowWnd类中由Create函数完成窗口类的创建于注册,以及窗口的创建工作
- CWindowWnd类中的ShowWindow函数用于显示窗口
- 消息循环由CPaintManagerUI::MessageLoop();代码完成
- 最后需要重写MessageHandle函数用于处理我们感兴趣的消息。并且在最后需要调用基类的MessageHandle函数,主要是为了调用DefWindowProc处理我们不感兴趣的消息。
duilib环境配置以及简单入门介绍相关推荐
- Python环境搭建以及简单入门介绍
Python简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 现在,全世界差不多有600多种编程 ...
- IDEA环境配置及Spring入门
IDEA环境配置及Spring入门–以HelloWorld为例的简单介绍与开发步骤 前言:本文主要内容 一:IDEA环境配置 二:用传统Java编程方式写HelloWorld例子 传统java:不使用 ...
- mmdetection 环境配置与简单测试(mmrotate同理)
mmdetection 环境配置与简单测试(mmrotate同理) 环境配置 annaconda环境安装 创建新的虚拟环境(此处参考官方) 代码结构分析讲解 接下来详细介绍自己数据集的训练 环境配置 ...
- 【MADDPG(MPE)——环境配置与用法详细介绍(多智能体强化学习))】
MADDPG(MPE)--环境配置与用法详细介绍(多智能体强化学习) MADDPG(MPE) 介绍 MPE环境安装教程 前期准备 MPE 安装包介绍 MPE 安装环境要求 开始安装 环境测试 MPE环 ...
- golang开发环境配置以及简单使用
golang开发环境配置以及简单使用 编译golang程序 go build命令的使用 http://c.biancheng.net/view/120.html 使用go build, 将main.g ...
- 40系笔记本(可不联网激活)深度学习生产力(环境配置和简单训练测试)
40系笔记本深度学习.转码生产力(环境配置和简单训练测试)这里写自定义目录标题 深度学习环境准备 CUDA.CUDNN版本问题 torch版本问题 其他软件版本的安装命令 训练测试代码地址 关于Lin ...
- CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建
CentOS7.4中Postfix邮件服务器的搭建(一)-----环境配置及简单搭建 实验内容: 1. 初始环境的优化 2. DNS服务器的搭建和postfix域名解析 3. Postfix服务器安装 ...
- Golang入门,安装与环境配置,简单代码入门
目录 一:安装包下载和环境配置 1.1软件下载和安装 1.2环境变量配置 1.3环境配置验证 二:完成HelloWorld程序 2.1编码 2.2执行 三:开发IDE工具软件安装和配置 3.1下载和安 ...
- Dagger2集成之环境配置及简单验证
1.1 配置Dagger2依赖关系 目前android应用的代码管理大多采用Gradle来做,但是在集成Dagger2的过程中,Gradle的版本与Dagger2的依赖方式存在一定的相关性,在网上一些 ...
最新文章
- C++关键字const
- 程序员拯救乐坛?OpenAI用“逆天”GPT2.0搞了个AI音乐生成器
- 解决报错: MobaXterm X11 proxy: Unsupported authorisation protocol
- linux 远程访问
- 什么是API,SDK?它们之间有什么关系?
- 动效设计中的隐喻-1
- Android使用SVG矢量图打造酷炫动效!
- 如何写一个高效进程/线程池_关于高效企业测试的思考(1/6)
- 虚拟主机选择php版本,虚拟主机的php版本如何选择
- android创建空文件,ADT 更新 eclipse srclayout 文件夹创建时候为空
- JavaScript萌新基础
- 学习MiniGui之多线程机制【转】
- mysql中时间类型datetime,timestamp与int的区别
- IDEA 手动导入本地依赖包
- 《Bible》各版本
- Python中出现问题:ValueError: not enough values to unpack (expected x, got x)的可能汇总及解决办法
- 牛魔王珍满福拉面 - 北京团购网|京东团购
- 计算机不驱动u盘启动,电脑U盘驱动没有启用的解决方法
- Verilog仿真器
- 1736. Latest Time by Replacing Hidden Digits
热门文章
- linux git还原文件,Gitlab备份到windows、在Linux恢复
- 别再无脑wwm了!在下游任务中不一定有效!
- 号外号外,第一届沙雕项目竞赛,这些项目以数万Star惨获提名
- 实时数据产品实践——美团大交通战场沙盘
- 手把手教你求职进入BAT
- 风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)
- Failed to execute goal org.apache.maven.plugins:maven-resources-plugin
- leetcode--数组(Medium2)
- 【Java】关于Java中的各种流
- Java总结:SpringBoot的使用cmd命令进行Gradle构建