DuiLib学习笔记2

1.将DuiLib源码加入工程

1.将DuiLib源码复制再工程中
2.在工程中添加已有项目
3.在自己创建的项目中添加引用DuiLib
4.在自己创建的项目中添加包含目录…/DuiLib/

2.DuiLib运行时报错的一些问题

1.资源加载失败一般为需要的图片文件路径存在错误或者无相关图片。
2.pRoot=NULL一般为xml文件编写错误,标签为闭合。

3.DuiLib中C++11多线程的使用

/*
* 通过传入值为地址,则可以让线程感知到值的变化而结束任务
* 或者做相关的操作。
*/
	#include 
	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	
	(m_PaintManager.FindSubControlByName(msg.pSender->GetParent()->GetParent(), _T("filename1")));
		//代码的含义 :通过按钮消息来获取其父容器的父容器,我这个程序真好定位到ListContainer。再找ListContainer中的子控件,即可完美完成列表中的定位列的操作
	```

#### 11.Duilib中文字设置
文字的设置一般设在主窗口的xml中,,默认第一个的id为0依次递加,字体的数值越大,字体越大

#### 12.Duilib的滚动条的设置
 可以通过这个属性的设置,直接设置控件滚动条的相关属性

#### 13.Dulib的slider详解
1. max为slider再已知宽度下被分成的等分。value为slider的移动距离
2. slider获取value的值需要将其转化为CProcessUI类型后才可以获取其值。
#### 14.百万个点的绘制
1.将点分成可以显示的若干等分,如1920份
2.再每一份点中找到最小和最大值,链接这两个点
3.将这一份点中的最后一个点和下一份点中的第一个值相连

你可能感兴趣的:(DuiLib)