<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[self_mind的记事本]]></title><description><![CDATA[一个自我学习的场所，一个记笔记的天堂！]]></description><link>https://blog.youkuaiyun.com/self_mind</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; self_mind]]></copyright><item><title><![CDATA[C++11 线程通信的三种方式]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/103521925</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/103521925</guid><author>self_mind</author><pubDate>Fri, 13 Dec 2019 10:15:18 +0800</pubDate><description><![CDATA[前言：发出消息的线程叫做检测线程，响应消息的线程称为响应线程。

C++11线程间的通信方式有三种：

（1）通过条件变量进行线程间的通信

（2）通过标志位来通知线程间的通信

（3）通过std::furture来进行线程间的通信

（1）通过条件变量进行线程间的通信
全局区间中定义如下：

std::condition_variable cv;// condvar for event

std...]]></description><category></category></item><item><title><![CDATA[Duilb QQ桌面上Edit的使用]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418485</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418485</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:42:42 +0800</pubDate><description><![CDATA[QQ上的Edit效果如图所示：
显示效果：
获取焦点后的效果：
单击后的效果：
Edit失去焦点后的效果：


通过分析XML文件发现，该效果是由一个Button和Edit两个空间组合形成的，其中两个空间的大小相等。原理：通过单击按钮，将按钮SetVisible(false),通过将EditSetVisible(ture)，同时获取按钮中的内容，赋值给Edit,当Edit失去焦点后，]]></description><category></category></item><item><title><![CDATA[Duilb控件的特殊说明]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418472</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418472</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:41:45 +0800</pubDate><description><![CDATA[2.控件的特殊说明


1）DUILIB中并没有 TAB 控件。它的实现方式为：






使用OptionUI即单选框代表TAB选择框，TabLayout代表窗口显示的区域。当Option被选择的时候，调用CTabLayoutUI::Select (index)，即可。具体如何操作，请参看示例。


2）DUILIB中并没有单选框。


单选框和复选框都用OPT]]></description><category></category></item><item><title><![CDATA[duilib 捕捉Windos原生消息和自定义消息]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418466</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418466</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:41:13 +0800</pubDate><description><![CDATA[一、Windows原生消息
 Duilib类中捕捉windows原生消息（如WM_SIZE），可以在重载的虚函数HandleMessage中进行捕捉、处理。所以当我们需要在捕捉某个原生消息后进行一些处理，可以重载虚函数HandleMessage。如
LRESULT CDuiFrameWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lPa]]></description><category></category></item><item><title><![CDATA[Duilib滑动条的使用]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418459</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418459</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:40:29 +0800</pubDate><description><![CDATA[滚动条的效果图：


代码的使用：
    else if (strcmp(msg.sType, _T("valuechanged")) == 0)


   {


       CTabLayoutUI* pTabControl = static_cast(m_PaintManager.FindControl(_T("tabs")));


       if (pT]]></description><category></category></item><item><title><![CDATA[复选框的使用]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418448</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418448</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:39:53 +0800</pubDate><description><![CDATA[效果图：


复选框的效果就是：当单击调色时会出现1框，当单击底纹是，会出现2框。
复选框类似与MFC中的CheckBox。
代码的实现如代码所示：
    if(strcmp(msg.sType ,_T("selectchanged"))==0){


         CTabLayoutUI* pTabControl = static_cast(m_PaintManager]]></description><category></category></item><item><title><![CDATA[Duilib在MFC中的初步使用]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418440</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418440</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:39:14 +0800</pubDate><description><![CDATA[一、建立所需的资源及环境
（1）头文件
      基本所有的头文件都放在四个文件夹之内，分别为Control、Core、Layout、Utils中，在使用过程中不需要再《包含附件目录》中添加各个头文件，因为所有头文件的加载都是在UIlib.h头文件中加载的如：
                            #include "Utils/Utils.h"


       ]]></description><category></category></item><item><title><![CDATA[Duilib六大布局及绝对布局和相对布局]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418420</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418420</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:38:43 +0800</pubDate><description><![CDATA[duilib的Layout目录专门放置布局相关的容器控件，这6个布局分别为：Container、VerticalLayout、HorizontalLayout、TileLayout、TabLayout、ChildLayout。容器之间可以任意相互嵌套。


一、Container（容器控件）：


  Container布局是其他所有布局以及含有容器特性（如CList、CListCon]]></description><category></category></item><item><title><![CDATA[Duilib布局及原理]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/53418405</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/53418405</guid><author>self_mind</author><pubDate>Thu, 01 Dec 2016 09:37:30 +0800</pubDate><description><![CDATA[1.Duilib分为几个大部分：


(1)控件


(2)容器（本质也是控件）


(3)UI构建解析器（XML解析）


(4)窗体管理器（消息循环，消息映射，消息处理，窗口管理等）


(5)渲染引擎


2.Win32消息路由如下：


消息产生。
系统将消息排列到其应该排放的线程消息队列中。
线程中的消息循环调用GetMessage（or P]]></description><category></category></item><item><title><![CDATA[如何利用MFC编写的.exe调用C#编写的dll动态库]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50947699</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50947699</guid><author>self_mind</author><pubDate>Mon, 21 Mar 2016 16:36:15 +0800</pubDate><description><![CDATA[如何利用MFC编写的.exe调用C#编写的dll动态库
    由于项目的需要，将C#编写的dll动态库运用到MFC编写的.exe程序中，具体运用步骤如下所示：


一、使用/clr方式来编译MFC文件，具体操作主要是更改MFC所在的项目属性：
    1、打开“项目属性”对话框，方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。


    2、展开“配置属性”旁边的节]]></description><category></category></item><item><title><![CDATA[白平衡   转载]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50913087</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50913087</guid><author>self_mind</author><pubDate>Thu, 17 Mar 2016 13:43:38 +0800</pubDate><description><![CDATA[http://blog.sina.com.cn/s/blog_7b7778dd0101cjsj.html点击打开链接





之前看到的一个关于白平衡学习的帖子，非常好！很多网站都有，谷歌一下主题“使影像达到极致的三个专业规则”就可以找到。找不到最早的出处了，而且主题也有点怪（三个规则只看到这一个。）全文拷贝过来方便以后学习。

-------------------------]]></description><category></category></item><item><title><![CDATA[MFC TabCtrl空间]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50909162</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50909162</guid><author>self_mind</author><pubDate>Wed, 16 Mar 2016 22:35:36 +0800</pubDate><description><![CDATA[MFC可以使用TabCtrl空间实现类似于选项卡功能的实现。
实现方法大概有这几步组成：


1、工程与主对话框创建　　

　　新建一个基于对话框的MFC应用程序，添加一个TabCtrl控件，并绑定CTabCtrl控件类型的变量（在VC 6.0中通过类向导来添加，Ctrl+W快捷键可直接调出），变量名定为m_tabCtrl（可以自由指定）。

2、tab标签对话框创建

　　每]]></description><category></category></item><item><title><![CDATA[文件操作二：基于C++语言的文件操作]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50900886</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50900886</guid><author>self_mind</author><pubDate>Tue, 15 Mar 2016 22:55:22 +0800</pubDate><description><![CDATA[基于C++的文件操作

在C++中，有一个stream这个类，所有的I/O都以这个“流”类为基础的，包括我们要认识的文件I/O，stream这个类有两个重要的运算符：

1、插入器(

2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin)，一般情况下就是指的键盘，所以，cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。

在C++]]></description><category></category></item><item><title><![CDATA[文件操作一：基于C语言的文件操作]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50900741</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50900741</guid><author>self_mind</author><pubDate>Tue, 15 Mar 2016 22:52:26 +0800</pubDate><description><![CDATA[在进行C++的编程过程中，经常遇到对文件进行读取操作，所以对文件操作进行整理。
基于C语言的文件操作有两种：流式文件操作和直接I/O文件操作
一、流式文件操作
流式文件操作有一个非常重要的结构FILE,该结构定义在头文件stdio.h中。结构定义如下：
typedef struct { int level; /* fill/empty level of buffer */ unsigned]]></description><category></category></item><item><title><![CDATA[Invalidate/InvalidateRect/UpdateWindow/RedrawWindow区别与联系]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50890661</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50890661</guid><author>self_mind</author><pubDate>Mon, 14 Mar 2016 23:22:39 +0800</pubDate><description><![CDATA[当窗口发生重绘时，应用程序会接收到WM_PAINT消息，从而调用ONPaint（）函数，当程序中调用以下几个函数时会发送WM_PAINT消息。
在讲解之前有一点知识需要明白：即当窗口有效时，那么我们是不能对窗口进行绘制，当窗口无效时，我们才能向窗口进行重画操作。
1. void Invalidate(
 BOOL bErase = TRUE )
    该函数的作用是使整个窗口的客户区无效]]></description><category></category></item><item><title><![CDATA[VC中获取字符串长度的四种类型]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50859828</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50859828</guid><author>self_mind</author><pubDate>Sat, 12 Mar 2016 00:12:39 +0800</pubDate><description><![CDATA[VC中的字符串类型和处理函数是一个比较复杂的问题，这类函数有四中，以去字符串长度的函数为列，如下所示：
strlen    
  str族
wcslen  
wcs族
_mbslen    
_mbs族
_tcslen    
  _tcs族
其中，前两族的函数是C语言的标准库函数，后两族函数是VC中特有的函数，即微软的扩展函数。这四族最大的区别是它们所用的字符集不同，或说它们的]]></description><category></category></item><item><title><![CDATA[COLORREF含义及在VC++中的使用]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50859718</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50859718</guid><author>self_mind</author><pubDate>Fri, 11 Mar 2016 23:40:19 +0800</pubDate><description><![CDATA[所谓真彩色是指显示出来的图像的颜色与真实世界中的颜色非常自然逼真，使得人眼难以区分它们之间的差别。
    通常使用RGB图像颜色表示法来表现真彩色图像，即用3字节来表示一个真彩色像素的颜色值。
    windows采用该方法来表现颜色，其中SDK提供一个名为RGB的宏来将不同的R、G、B颜色值转化为24位的颜色值。其原型如下：
COLORRER RGB（BYTE bRed,BYTE bG]]></description><category></category></item><item><title><![CDATA[libtiff库的使用心得]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50848677</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50848677</guid><author>self_mind</author><pubDate>Thu, 10 Mar 2016 17:38:37 +0800</pubDate><description><![CDATA[VC2010使用libtiff库的环境配置：
头文件：tiff.h、tiffconf.h、tiffio.h、tiffvers.h
库文件：libtiff.lib、libtiff.dll
以上文件放到当前工作路径即可。
源码中需要写入：
#include 
"tiffio.h"
#pragma 
comment( lib, 
".\\lib\\libtiff.lib")
 
接]]></description><category></category></item><item><title><![CDATA[mem家族（memset和memcpy)]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50848618</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50848618</guid><author>self_mind</author><pubDate>Thu, 10 Mar 2016 17:36:47 +0800</pubDate><description><![CDATA[1. mem开头的函数基本上都是对内存操作的，
    它们不管内存里放的是什么数据，只要给出长度，它们就操作。不像strcpy、strcmp等函数一定以'\0'结尾，而且是字符。mem可以操作可见字符、不可见字符、控制字符等，任意数据都可以。
2. memcpy是内存复制函数
    原型: 
       void * memcpy(void *dest, void const *sr]]></description><category></category></item><item><title><![CDATA[libtiff库在windows下的编译（32位与64位）]]></title><link>https://blog.youkuaiyun.com/self_mind/article/details/50845789</link><guid>https://blog.youkuaiyun.com/self_mind/article/details/50845789</guid><author>self_mind</author><pubDate>Thu, 10 Mar 2016 14:15:20 +0800</pubDate><description><![CDATA[一、Tiff文件简介


    IFF是Tagged Image File Format(标记图像文件格式)的缩写，这是现阶段印刷行业使用最广泛的文件格式,文件扩展名为tif或tiff.TIFF是一种比较灵活的图像格式,该格式支持单色，8,16,256色、24位真彩色、32位色、48位色等多种色彩位，同时支持rgb、cmyk以及ycbcr等多种色彩模式，支持多平台。tiff文件可以是不压缩]]></description><category></category></item></channel></rss>