- 博客(24)
- 收藏
- 关注
原创 CStringW 和CStringA互转
CStringA CUserPacketToolDlg::CStrW2CStrA(const CStringW &cstrSrcW) { int len = WideCharToMultiByte(CP_ACP, 0, LPCTSTR(cstrSrcW), -1, NULL, 0, NULL, NULL); char *str = new char[len]; memset(
2017-05-03 10:52:52
1079
原创 MFC CArray使用详解
MFC的数组类支持的数组类似于常规数组,可以存放任何数据类型。常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,即先确定大小,而MFC数组类创建的对象可以根据需要动态地增大或减小,数组的起始下标是0,而上限可以是固定的,也可以随着元素的增加而增加,数组在内存中的地址仍然是连续分配的。 MFC定义了数组模板类CArray,并针对各种常用变量类型定义了CByteArray,CArray,
2017-03-03 16:48:50
953
原创 VC++ _T()的作用
VC++里面定义字符串的时候,用_T来保证兼容性。VC++支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。如果将来你不打算升级到unicode,那么也不需要_T。_t("hello world")在ansi的环境下,它是ansi的,如果在unicode下,那么它将自动解释为双字节字
2017-03-03 15:40:31
1412
原创 #ifdef _DEBUG用法小结
1#ifdef _DEBUG virtual void AssertValid() const; //assert(断言)valid(有效的,正确的)virtual void Dump(CDumpContext& dc) const; //存储上下文#endif这两个函数是调试用的,第一个函数检查可用性,即是否有效 第二个函数如果未更改的话,最终调用的是Cwnd::Dump
2017-03-03 15:34:25
2458
原创 C++ 构造函数
1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A 产生四个缺省的函数,例如:
2017-03-03 15:18:27
294
原创 C++中extern “C”含义深层探索
C++中extern “C”含义深层探索 1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语
2017-03-03 14:36:45
230
原创 EditBox 控件的用法
设置控件的容量:EditBox控件默认情况下只能装入64k的文本,如果超出,多出部分会被自动截掉。利用CEdit的SetLimitText()函数可重新设置控件容量函数原型:Void SetLimitText(UINT nMax)参数为nMax为控件可接收的文本最大字节数。设置方法:用ClassWizard在CEditBox类中添加消息函数PreSubclassWind
2017-03-03 14:04:09
3269
1
原创 GetModuleFileName 函数的用法
DWORD WINAPI GetModuleFileName( _In_opt_ HMODULE hModule, //一个模块的句柄。可以是DLL模块,或应用程序的实例句柄。如果该参数为NULL.该函数返回该应用程序的全路径 _Out_ LPTSTR lpFilename,//指定一个字符缓冲区,要在其中容纳文件的用NULL字符种植的路径名, _In_
2017-03-03 13:31:24
1441
1
原创 GetFileSizeEx 用法
获取文件的长度:1.C语言获取文件长度if(!(fp=fopen(filename,“rb”)))//以二进制打开文件{printf(“Can not open this file!\n”);continue;}fseek(fp,0,SEEK_END); //文件指针转到文件末尾if((len=ftell(fp))==-1)//ftell函数返回long,最
2017-03-03 13:30:10
2345
原创 C++ pair的用法
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接对其初始化。 由于p
2017-03-03 13:28:58
535
原创 C++ map用法
map 是一种关联容器, 提供一对一的关联, 关联的形式为: KEY----VALUE 关键字不重复。multimap与map类似,但是允许关键字重复即:关键字和与之对应的值关键字起到索引的作用, 在map中查找记录 就是根据关键字查找,关键字和值可以是任意类型map 也可看做是关键字映射的集合即map中不可出现重复的关键字,每条映射的关键字都是不同的。
2017-03-03 13:26:54
606
原创 duilib基础知识
DuiLib库 我们把它分为四个模块(核心,基础,控件,另外的库),当前有些也会把它分为5个模块(用户界面层,数据,事件处理,渲染模块,插件模块)我们先讲下四个模块里包含了那些类一.核心模块:UIMarkup(解析XML), CMarkupNode(节点),CRenderClip(渲染区域控制), CRenderEngine(渲染引擎), CPaintManagerUI(绘
2017-03-03 13:24:01
503
原创 win32创建窗口流程
#include #include LRESULT CALLBACK winSunpro(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam);int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrev
2017-03-01 16:49:42
532
转载 对话框中设置静态文本框字体及颜色
1、添加对话框类声明中字体和颜色变量[cpp] view plain copypublic: CFont m_myFont; // 字体对象 COLORREF m_myColor; // 颜色对象 2、在对话框初始化函数OnInitDialog()中对字体和颜色进行初始化[cpp] view plain copy// TODO: 在此添加额外的初始化代
2016-10-25 22:48:53
340
转载 BSTR类型
概述 它被描述成一个与自动化相兼容的类型,由于操作系统提供相应的API函数(如SysAllocString)来管理它以及一些默认的调度代码。因此BSTR实际上就是一个COM字符串,但它却在自动化技术以外的多种场合下得到广泛使用。为什么需要BSTR COM是一种跨编程语言的平台,需要提供语言无关的数据类型。多数编程语言有自己的字符串表示。 ●C++ 字符串是以0结束
2016-10-25 22:45:04
563
转载 C++中各种数据类型转换
常用数据类型使用转换详解 leo:要在Unicode字符集环境下把CString转化为char*方法: CString str = _T("D://校内项目//QQ.bmp");//////leo这个NB 可以降在Unicode下的CString转化为char* //声明标识符 USES_CONVERSION; //调用函数,T2A和W2A均支
2016-10-25 22:27:32
909
转载 Windows数据类型的罗列
WORD:16位无符号整形数据DWORD:32字节无符号整型数据(DWORD32)DWORD64:64字节无符号整型数据INT:32位有符号整型数据类型INT_PTR:指向INT数据类型的指针类型INT32:32位符号整型INT64:64位符号整型UINT:无符号INTLONG:32位符号整型(LONG32)ULONG:无符号LONGLONGLONG:64位
2016-10-25 22:21:19
325
转载 C++中_T()和L的区别以及TEXT()和_TEXT的区别
字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:
2016-10-25 22:12:43
1615
转载 MessageBox详解
如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox().afxmessagebox:1.更多的时候是用于调试 2.A
2016-10-25 22:00:45
513
原创 VS读取配置文件.ini
配置文件中经常用到ini文件,在VC中其函数分别为:写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);读取.ini文件:DWORD GetPrivateProfileString(LPCTST
2016-10-25 21:39:31
3733
转载 CString 所有成员函数详解
VC里CString是我们最常用的类之一,我们觉得对它很熟悉了,可是你知道它的所有用法吗?还是系统的学习一下吧,认真看完本文就OK了。下面开始:CString::Compare int Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0小于lpsz 返回-1大于lpsz 返回1 区分大小字符 CString
2016-10-19 22:29:05
539
转载 CString常用方法
CString Left(intnCount)const; //从左边1开始获取前 nCount个字符 CString Mid(intnFirst)const; //从左边第 nCount+1个字符开始,获取后面所有的字符 CString Mid(intnFirst,intnCount)const; //从左边第 nFirst+1 个字符开始,获取后面nCount个字符 CStr
2016-10-19 22:25:24
205
转载 MFC编程入门(常用控件:编辑框Edit Control)
编辑框的通知消息 编辑框发生某些事件时会向父窗口发送通知消息。在对话框模板中的编辑框上点右键,选择“Add Event Handler”,为编辑框添加消息处理函数时,可以在“Message type”列表中看到这些消息。下面简单介绍编辑框的部分通知消息。 EN_CHANGE:编辑框的内容被用户改变了,与EN_UPDATE 不同,该消息是在编辑框显示的正文被刷新后才发
2016-10-19 22:09:41
996
原创 MFC CFileDialog 实例
void CSignToolDlg::OnBnClickedBtnBrowse(){UpdateData(TRUE); TCHAR szFileName[MAX_PATH] = {0};GetModuleFileName(NULL, szFileName, MAX_PATH);CString Filter_file = L"Supported Files(*.bin)|*.BI
2016-10-19 21:22:32
744
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人