自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

self_mind的记事本

一个自我学习的场所,一个记笔记的天堂!

  • 博客(79)
  • 资源 (7)
  • 收藏
  • 关注

原创 C++11 线程通信的三种方式

前言:发出消息的线程叫做检测线程,响应消息的线程称为响应线程。C++11线程间的通信方式有三种:(1)通过条件变量进行线程间的通信(2)通过标志位来通知线程间的通信(3)通过std::furture来进行线程间的通信(1)通过条件变量进行线程间的通信全局区间中定义如下:std::condition_variable cv;// condvar for eventstd...

2019-12-13 10:15:18 10580

原创 Duilb QQ桌面上Edit的使用

QQ上的Edit效果如图所示:显示效果:获取焦点后的效果:单击后的效果:Edit失去焦点后的效果:通过分析XML文件发现,该效果是由一个Button和Edit两个空间组合形成的,其中两个空间的大小相等。原理:通过单击按钮,将按钮SetVisible(false),通过将EditSetVisible(ture),同时获取按钮中的内容,赋值给Edit,当Edit失去焦点后,

2016-12-01 09:42:42 723

原创 Duilb控件的特殊说明

2.控件的特殊说明1)DUILIB中并没有 TAB 控件。它的实现方式为:使用OptionUI即单选框代表TAB选择框,TabLayout代表窗口显示的区域。当Option被选择的时候,调用CTabLayoutUI::Select (index),即可。具体如何操作,请参看示例。2)DUILIB中并没有单选框。单选框和复选框都用OPT

2016-12-01 09:41:45 1004

原创 duilib 捕捉Windos原生消息和自定义消息

一、Windows原生消息 Duilib类中捕捉windows原生消息(如WM_SIZE),可以在重载的虚函数HandleMessage中进行捕捉、处理。所以当我们需要在捕捉某个原生消息后进行一些处理,可以重载虚函数HandleMessage。如LRESULT CDuiFrameWnd::HandleMessage( UINT uMsg, WPARAM wParam, LPARAM lPa

2016-12-01 09:41:13 1217

原创 Duilib滑动条的使用

滚动条的效果图:代码的使用:    else if (strcmp(msg.sType, _T("valuechanged")) == 0)   {       CTabLayoutUI* pTabControl = static_cast(m_PaintManager.FindControl(_T("tabs")));       if (pT

2016-12-01 09:40:29 3065

原创 复选框的使用

效果图:复选框的效果就是:当单击调色时会出现1框,当单击底纹是,会出现2框。复选框类似与MFC中的CheckBox。代码的实现如代码所示:    if(strcmp(msg.sType ,_T("selectchanged"))==0){         CTabLayoutUI* pTabControl = static_cast(m_PaintManager

2016-12-01 09:39:53 568

原创 Duilib在MFC中的初步使用

一、建立所需的资源及环境(1)头文件      基本所有的头文件都放在四个文件夹之内,分别为Control、Core、Layout、Utils中,在使用过程中不需要再《包含附件目录》中添加各个头文件,因为所有头文件的加载都是在UIlib.h头文件中加载的如:                            #include "Utils/Utils.h"       

2016-12-01 09:39:14 2139

原创 Duilib六大布局及绝对布局和相对布局

duilib的Layout目录专门放置布局相关的容器控件,这6个布局分别为:Container、VerticalLayout、HorizontalLayout、TileLayout、TabLayout、ChildLayout。容器之间可以任意相互嵌套。一、Container(容器控件):  Container布局是其他所有布局以及含有容器特性(如CList、CListCon

2016-12-01 09:38:43 4482

原创 Duilib布局及原理

1.Duilib分为几个大部分:(1)控件(2)容器(本质也是控件)(3)UI构建解析器(XML解析)(4)窗体管理器(消息循环,消息映射,消息处理,窗口管理等)(5)渲染引擎2.Win32消息路由如下:消息产生。系统将消息排列到其应该排放的线程消息队列中。线程中的消息循环调用GetMessage(or P

2016-12-01 09:37:30 1786

原创 如何利用MFC编写的.exe调用C#编写的dll动态库

如何利用MFC编写的.exe调用C#编写的dll动态库    由于项目的需要,将C#编写的dll动态库运用到MFC编写的.exe程序中,具体运用步骤如下所示:一、使用/clr方式来编译MFC文件,具体操作主要是更改MFC所在的项目属性:    1、打开“项目属性”对话框,方法是右键单击“解决方案资源管理器”中的项目并选择“属性”。    2、展开“配置属性”旁边的节

2016-03-21 16:36:15 2038

转载 白平衡 转载

http://blog.sina.com.cn/s/blog_7b7778dd0101cjsj.html点击打开链接之前看到的一个关于白平衡学习的帖子,非常好!很多网站都有,谷歌一下主题“使影像达到极致的三个专业规则”就可以找到。找不到最早的出处了,而且主题也有点怪(三个规则只看到这一个。)全文拷贝过来方便以后学习。-------------------------

2016-03-17 13:43:38 859

原创 MFC TabCtrl空间

MFC可以使用TabCtrl空间实现类似于选项卡功能的实现。实现方法大概有这几步组成:1、工程与主对话框创建    新建一个基于对话框的MFC应用程序,添加一个TabCtrl控件,并绑定CTabCtrl控件类型的变量(在VC 6.0中通过类向导来添加,Ctrl+W快捷键可直接调出),变量名定为m_tabCtrl(可以自由指定)。2、tab标签对话框创建  每

2016-03-16 22:35:36 672

原创 文件操作二:基于C++语言的文件操作

基于C++的文件操作在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。在C++

2016-03-15 22:55:22 286

原创 文件操作一:基于C语言的文件操作

在进行C++的编程过程中,经常遇到对文件进行读取操作,所以对文件操作进行整理。基于C语言的文件操作有两种:流式文件操作和直接I/O文件操作一、流式文件操作流式文件操作有一个非常重要的结构FILE,该结构定义在头文件stdio.h中。结构定义如下:typedef struct { int level; /* fill/empty level of buffer */ unsigned

2016-03-15 22:52:26 296

原创 Invalidate/InvalidateRect/UpdateWindow/RedrawWindow区别与联系

当窗口发生重绘时,应用程序会接收到WM_PAINT消息,从而调用ONPaint()函数,当程序中调用以下几个函数时会发送WM_PAINT消息。在讲解之前有一点知识需要明白:即当窗口有效时,那么我们是不能对窗口进行绘制,当窗口无效时,我们才能向窗口进行重画操作。1. void Invalidate( BOOL bErase = TRUE )    该函数的作用是使整个窗口的客户区无效

2016-03-14 23:22:39 427

原创 VC中获取字符串长度的四种类型

VC中的字符串类型和处理函数是一个比较复杂的问题,这类函数有四中,以去字符串长度的函数为列,如下所示:strlen      str族wcslen  wcs族_mbslen    _mbs族_tcslen      _tcs族其中,前两族的函数是C语言的标准库函数,后两族函数是VC中特有的函数,即微软的扩展函数。这四族最大的区别是它们所用的字符集不同,或说它们的

2016-03-12 00:12:39 5481

原创 COLORREF含义及在VC++中的使用

所谓真彩色是指显示出来的图像的颜色与真实世界中的颜色非常自然逼真,使得人眼难以区分它们之间的差别。    通常使用RGB图像颜色表示法来表现真彩色图像,即用3字节来表示一个真彩色像素的颜色值。    windows采用该方法来表现颜色,其中SDK提供一个名为RGB的宏来将不同的R、G、B颜色值转化为24位的颜色值。其原型如下:COLORRER RGB(BYTE bRed,BYTE bG

2016-03-11 23:40:19 22811 2

原创 libtiff库的使用心得

VC2010使用libtiff库的环境配置:头文件:tiff.h、tiffconf.h、tiffio.h、tiffvers.h库文件:libtiff.lib、libtiff.dll以上文件放到当前工作路径即可。源码中需要写入:#include "tiffio.h"#pragma comment( lib, ".\\lib\\libtiff.lib") 接

2016-03-10 17:38:37 9158

原创 mem家族(memset和memcpy)

1. mem开头的函数基本上都是对内存操作的,    它们不管内存里放的是什么数据,只要给出长度,它们就操作。不像strcpy、strcmp等函数一定以'\0'结尾,而且是字符。mem可以操作可见字符、不可见字符、控制字符等,任意数据都可以。2. memcpy是内存复制函数    原型:        void * memcpy(void *dest, void const *sr

2016-03-10 17:36:47 769

原创 libtiff库在windows下的编译(32位与64位)

一、Tiff文件简介    IFF是Tagged Image File Format(标记图像文件格式)的缩写,这是现阶段印刷行业使用最广泛的文件格式,文件扩展名为tif或tiff.TIFF是一种比较灵活的图像格式,该格式支持单色,8,16,256色、24位真彩色、32位色、48位色等多种色彩位,同时支持rgb、cmyk以及ycbcr等多种色彩模式,支持多平台。tiff文件可以是不压缩

2016-03-10 14:15:20 5850 1

原创 绘制位图的步骤

•GDI是图形设备接口(Graphics Device Interface)的英文首字母的简称。•GDI是一个抽象的接口,是一个关于图形显示的函数库。通过这个接口可以实现对图形的颜色、线条的粗细等属性的控制。它是我们的程序与计算机硬件之间的一个桥梁。•Windows图形编程就是针对Windows自带的图形设备接口函数库和设备环境(DC)进行操作。通过调用这些函数库中的函数来完成绘制工作。

2016-03-07 23:25:44 1713

原创 AdobeRGB与sRGB详解

链接:http://www.zhihu.com/question/20602284/answer/345427851,首先需要理解的是这个世界中的颜色的本质不是我们看到的样子,红黄蓝绿青蓝紫,而是电磁波的波长。我们人为把某种波长的光赋予了一种颜色(大脑:“怪我咯?”)原理如下70年代以来,由于实验技术的进步,关于视网膜中有三种对不同波长光线特别敏感的视锥细胞的假说,已经被许多出

2016-03-04 11:22:21 5381

原创 Adobe RGB和sRGB色彩空间的主要区别

首先在于开发时间和开发厂家不同。sRGB色彩空间是美国的惠普公司和微软公司于1997年共同开发的标准色彩空间(standard Red Green Blue),由于这两家公司的实力强,他们的产品在市场中占有很高的份额。而AdobeRGB色彩空间是由美国以开发Photoshop软件而闻名的 Adobe公司1998年推出的色彩空间标准,它拥有宽广的色彩空间和良好的色彩层次表现,与sRGB色彩空间相比,

2016-03-04 11:11:49 7912

原创 控件的移动方法

控件位置的调整涉及的函数有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下:1.用GetWindowRect()获得窗口在屏幕上的矩形坐标,调整控件位置时必须首先获得该屏幕坐标;GetWindowRect是获取窗口句柄对应的窗口的屏幕坐标. CRect

2016-03-02 23:46:32 518

原创 滚动条的创建(1)

手动创建滚动条的一些API函数:1.构造函数CScrollBar()例如:CScrollBar *pScrollBar;pScrollBar = new CScrollBar;2.生成函数BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );

2016-03-02 23:24:16 452

原创 For mine

http://blog.csdn.net/hnust_xiehonghao/article/details/37729537点击打开链接

2016-03-02 17:54:20 260

原创 Check Box的详细用法

勾选时...做某种算法---不勾选时 做另一种算法if ( BST_CHECKED == IsDlgButtonChecked( IDC_CHECK1 ) ){// 勾选}else{}IDC_CHECK1是CheckBox控件。函数功能:该函数可以确定某个按钮控制是否有选中标志,或者三态按钮控制是否为灰色的、选中的、或两者都不是。  函数原型:UINT IsDl

2016-03-02 16:53:04 14561

原创 重绘控件提示

重绘控件提示的使用今天,找到了一种重绘控件提示的类CMFECToolTip,该类是由MFECToolTip.h头文件和MFECToolTip.cpp组成。其接口:void CreateTab(CWnd* pWnd); //创建该类的对象。BOOL AddControlInfo( UINT, CStringArray&, COLORRE

2016-03-02 16:09:44 416

原创 效率: 条款23 考虑使用其他程序库

举个例子:考虑iostream和stdio库,任何一位C++程序员对这两者应该都不陌生。如iostream库具有类型安全特性,并且可扩充。然而在效率方面stdio的可执行文件通常比iostream更小更快。然而,iostream和stdio之间的性能对比只是个例子,重点是:不同的程序库即使提供相似的机能,也往往表现出不同的性能取舍策略,所以一旦你找出程序的瓶颈,你应该思考是否有可能因为改用另一

2016-03-01 22:28:50 256

原创 效率:条款22 考虑以操作符复合形式op+= 取代其独身形式op=

在c++程序中,我们已知x=x+y 可以写成x+=y;但是在C++中,operator+,operator=和operator+=之间并没有设立任何互动关系,所以如果你希望这3个操作符都存在并且有着你所期望的互动关系,你就必须自己来实现。同理-,*,/也是一样。要确保操作符的复合形式和其独身形式之间的自然关系能够存在,一个好方法就是以复合形式为基础来实现独身形式。如:Rational& o

2016-02-29 23:02:03 387

原创 C++所有类型的定义

LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的64位双字节字符数组指针。LPSTR是指指向一个字符串的32位指针,每个字符占1个字节。类似于:(LPSTR 相当于CHAR *)char chArray[] = “This is a test

2016-02-28 21:46:13 856

原创 BSTR、char*和CString转换

BSTR、char*和CString转换(1) char*转换成CString若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如:char chArray[] = “This is a test”;char * p = “This is a test”;或LPSTR p = “This is a test”;或在已定

2016-02-28 21:20:52 206

原创 效率: 条款21 利用重载技术避免隐式类型转换(implicit type conversions)

理解本条款内容之前需要先看一个例子:class UPint{public: UPint(); UPint(int value); ....}const UPint operator+(const UPint& lhs,const UPint& rhs);UPint u1,u2;UPint u3 = u1 + u2;//这没什么可讨论的,可以执行。UPint

2016-02-28 19:52:29 675

转载 VS2010 C++ 操作Excel表格的编程实现

转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.htmlhttp://blog.csdn.net/icyfox_bupt/article/details/6318979(推荐这个) 通过VC实现对Excel表格的操作的方法有多种,如:通过ODBC数据库实现,通过

2016-02-28 12:19:59 616

原创 效率:条款20 协助完成“返回值优化(RVO)”

函数如果返回对象,对效率狂而言是一个严重的挫折,因为以by-value方式返回对象,背后隐藏的constructor和destructor都将无法消除。有的人会返回指针,于是导致下列这种拙劣的语法形式:const Rational* operator*(const Rational* lhs,const Rational* rhs){ return new Rational(lh

2016-02-27 22:45:03 332

原创 效率:条款19 了解临时对象的来源

人们对临时对象有普遍的误解:如swap函数:templatevoid swap(T& object1 , T& object2){ T temp = object1; object1 = object2; object2 = temp;}认为temp是一个临时对象,其实不然,temp不是临时对象,而是一个函数的局部对象。C++真正的临时对象是不可见的

2016-02-25 22:26:46 266

原创 要看的网站

http://www.cnblogs.com/Romi/archive/2012/11/21/2781753.html点击打开链接

2016-02-25 10:28:14 1085

原创 fopen与fopen_s区别与联系

该函数需要头文件:#include在vs编程中,经常会有这样的警告:warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use_CRT_SECURE_NO_WARNINGS. See online he

2016-02-24 22:25:49 5784 3

原创 Cimage类的介绍及使用

其他关于此类的介绍:http://blog.csdn.net/wayaoqiang/article/details/7620745点击打开链接http://blog.sina.com.cn/s/blog_5a82024e0100c84g.html点击打开链接http://blog.csdn.net/wangji163163/article/details/17805

2016-02-23 21:52:57 11561

转载 strcpy strcpy_s strncpy strlcpy区别与联系

strncpy的用法:它与strcpy的不同之处就在于复制n个字符,而不是把所有字符拷贝(包括结尾'\0')。函数原型:char * strncpy(char *dst,const char * src, int n)  当src的长度小于n时,dst内的未复制空间用'\0'填充。否则,复制n个字符到dst,没有加'\0'。这里就要注意在字符串dst结尾处理加'\0'的情况了strcp

2016-02-21 20:01:58 1610

seqplay.exe

自己写的YUV播放器,简单可用,当初学习雷神老师的FFMPegger时,就是用它来进行播放YUV文件的,现在发送出来,给大家使用,简单好用,顺便附带源码,

2019-11-20

全部介绍windows内存的分配机制

主要用于介绍window的内存机制,可以通过辅助windows情景分析进行开发学习。

2018-09-25

windows内核分析(上)

主要用于介绍windows内核对象的底层实现,可以结合《windows核心编程》来一块学习。

2018-09-25

libtiff已编译好的库(32位和64位)

为了时各个程序员不在为了编译libtiff源码烦恼,现在将已经编译好的32位和64位的库传上,已测请放心下载。

2016-03-10

GDI相关知识和内容

用于进行GDI开发,主要包括DC等内容,主要预防以后内容的遗忘

2016-03-07

GDI GDI+从入门到精通(vc大讲堂)

用于记录GDI开发所用的基础知识,可以用于以后遇到相关问题时用于查看。

2016-03-07

重绘提示用于进行空间的提示功能

重绘控件提示的使用 今天,找到了一种重绘控件提示的类CMFECToolTip,该类是由MFECToolTip.h 头文件和MFECToolTip.cpp组成。

2016-03-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除