1.将DuiLib源码加入工程
1.将DuiLib源码复制再工程中
2.在工程中添加已有项目
3.在自己创建的项目中添加引用DuiLib
4.在自己创建的项目中添加包含目录…/DuiLib/
2.DuiLib运行时报错的一些问题
1.资源加载失败一般为需要的图片文件路径存在错误或者无相关图片。
2.pRoot=NULL一般为xml文件编写错误,标签为闭合。
3.DuiLib中C++11多线程的使用
/*
* 通过传入值为地址,则可以让线程感知到值的变化而结束任务
* 或者做相关的操作。
*/
#include <thread>
void thread_fun(int *a){}
...
thread task1(thread_fun,&a);
task2.detach();
//detach()可以直接运行,.join()需要等上一个线程完成后再执行
4.DuiLib的弹出框的设计
1.为弹出框模拟一个类似的相关类
2.空白的模板类中加入一些需要的内容完成自定义的弹出框
主要的类别有,根据相应的位置弹出弹出框;失去焦点后弹出框就消失;以及模态和非模态的区别。
5.Win32中文件的保存,打开操作
WIN32API提供了相关的接口和类可以直接进行使用
博客:https://www.cnblogs.com/mantian/p/3816834.html
CSDN链接:https://docs.microsoft.com/zh-cn/windows/desktop/api/winbase/nf-winbase-openfile
6.DuiLib自定义消息的传送,窗口直接消息的传送
1.在主窗口类中定义 自定义函数
#define UM_DELETE_FILE WM_USER+3
2.在子窗口中的响应代码部分发送消息
::SendMessage(m_hParentHwnd, UM_DELETE_FILE, NULL, NULL);
//第一个参数为父窗口的参数句柄,有子窗口创建是进行的初始化
//第二个参数为发送的消息
//第三个和第四个参数为额外的雄安喜内容
3.在需要相应的窗口内接收消息并处理
LRESULT CDuiFrameWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
POINT pt;
switch (uMsg)
{
case WM_COMMAND:
break;
case UM_DELETE_FILE: //delete record file
{
...
}
break;
...
//在这个函数中进行相关的处理
7.WIN32获取当前exe运行的路径
CString sPath, strTemp;
GetModuleFileName(NULL, sPath.GetBufferSetLength(MAX_PATH + 1), MAX_PATH);
sPath.ReleaseBuffer();
int nPos = sPath.ReverseFind('\\');
strTemp = sPath.Left(nPos);
//strTemp就是exe运行的目录路径
8.DuiLib中去除选中列表的背景色
pList->ApplyAttributeList(_T("itemselectedbkcolor=\"\" itemhotbkcolor=\"\" "));
//在list中设置这两个属性即可
9.DuiLib中动态设置控件的位置
pList->SetFloat(); //使用绝对位置
SIZE leftTop = { 95,100 };
pList->SetFixedXY(leftTop); //坐标位置
pList->SetFixedHeight(820); //高度
pList->SetFixedWidth(1760); //宽度
//Fixed的大概意思就是固定的意思把
10.DuiLib中获取某个按钮的相应,或者相关的取值
CTextUI *pFileName = static_cast<CTextUI*>
(m_PaintManager.FindSubControlByName(msg.pSender->GetParent()->GetParent(), _T("filename1")));
//代码的含义 :通过按钮消息来获取其父容器的父容器,我这个程序真好定位到ListContainer。再找ListContainer中的子控件,即可完美完成列表中的定位列的操作
```
#### 11.Duilib中文字设置
文字的设置一般设在主窗口的xml中,<Font>,默认第一个<Font>的id为0依次递加,字体的数值越大,字体越大
#### 12.Duilib的滚动条的设置
<Default> 可以通过这个属性的设置,直接设置控件滚动条的相关属性
#### 13.Dulib的slider详解
1. max为slider再已知宽度下被分成的等分。value为slider的移动距离
2. slider获取value的值需要将其转化为CProcessUI类型后才可以获取其值。
#### 14.百万个点的绘制
1.将点分成可以显示的若干等分,如1920份
2.再每一份点中找到最小和最大值,链接这两个点
3.将这一份点中的最后一个点和下一份点中的第一个值相连