
MFC
文章平均质量分 81
password318
爱好新技术,新思想,是一个
展开
-
基于VS2010的MFC动态菜单
1、创建菜单资源新建IDR_DYNAMIC_MENU,制作如下菜单,其中“动态菜单1”,“动态菜单2”的属性popup为false,并设定ID为ID_DYNAMIC_ITEM1和ID_DYNAMIC_ITEM2,中间的分隔符在Caption属性中输入"-",并设置popup为false,separator为true。为系统菜单添加一个类似placeholder的菜单项,其Caption原创 2011-10-23 21:27:10 · 5737 阅读 · 2 评论 -
DXFTest
// ModelInfoTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #ifdef _DEBUG#define new DEBUG_NEW#endif#include "DXFLine.h"#include "DXFCircle.h"#原创 2011-11-24 22:18:22 · 976 阅读 · 0 评论 -
C++读取UNICODE,UTF-8,ANSI,及char wchar相互转换
根据msdn描述,如果参数为ccs=UNICODE,则 (注:这里的UNICODE指UTF-8和UTF-16LE等的统称) 如果文件没有BOM头,则编码为ANSI,相当于没有写css= 如果文件BOM为UTF-8,则编码为UTF-8,相当于写了css=UTF-8 如果文件BOM为UTF-16LE,则编码为UTF-16LE,相当于写了css=UTF-16LE转载 2011-11-11 10:30:06 · 4362 阅读 · 0 评论 -
DXF简介
DXF数据接口 每个CAD系统都有自己的数据文件,数据文件分图形数据文件、几何模型文件和产品模型文件几种。数据文件的格式与每个CAD系统自己的内部数据模式密切相关,而每个CAD系统自己内部的数据模式一般是不公开的,也是各不相同的。由于用户使用的需要,就有数据交换文件概念的出现。 DXF为AutoCAD系统的图形数据文件,DXF虽然不是标准,但由于AutoCAD系统的普遍应用,使得DXF成为转载 2011-11-29 10:57:38 · 4014 阅读 · 0 评论 -
在Console项目中显示CString对象的问题
通过项目依赖,完成了一个基于MFC的Console项目依赖于MFC的项目。现要将MFC项目中的基于CString的对象信息显示出来。需要作如下转换void execute(){ wcout.imbue(locale("chs")); //显示中文,必须要加 CModelInfo info; info.m_id = _T("测试程序"); LPTSTR lpsz = new T原创 2011-11-09 22:22:13 · 681 阅读 · 0 评论 -
私有继承CObject导致无法用new新建对象
如何返回一个局部对象引用?原创 2011-11-10 13:01:05 · 522 阅读 · 0 评论 -
类构造函数和析构函数
Test类描述和实现#include "stdafx.h"#include "ModelInfoTest.h"#include "Test.h"#include using namespace std;extern LPTSTR ConvertCStringToStr(CString& m_str);// CTestCTest::CTest(){}CTest::CTest(原创 2011-11-10 16:37:49 · 582 阅读 · 0 评论 -
CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 (转)
CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参数为CString字符串的长度 szMsg = str.GetBuffer(str.GetLength());转载 2011-11-10 20:45:24 · 2335 阅读 · 0 评论 -
静态数据声明不能识别问题
类的静态成员一定要初始化,否则链接时就会报错原创 2011-12-02 00:37:16 · 1263 阅读 · 0 评论 -
编译和警告
排出警告#if defined(_MSC_VER) && _MSC_VER >= 1310# pragma warning( disable: 4996 ) // disable fopen deprecation warning#endif1: Command line warning D9035 : option 'Wp64' has转载 2011-12-06 10:09:09 · 765 阅读 · 0 评论 -
项目与库文件链接引用
解决方案中存在多个子项目,如VR解决方案中,存在EasyHome,json_cpp.lib,json_util.lib项目,其中json_util项目依赖json_cpp项目,easyHome项目又依赖json_cpp.lib和json_util.lib项目,为清晰起见,项目的引用头文件都放置在include文件夹中,项目的lib文件都放置在lib文件夹中。引用时要保证库文件和库路径一致。以便在e原创 2011-12-06 12:48:52 · 471 阅读 · 0 评论 -
VC2005项目移植到VC2010
由于VC2010 改进了很多界面设计,提供了丰富的停靠功能。1、将新旧项目加载到同一个解决方案中2、将资源逐一拷贝到新项目中。也可以通过调试发现哪些ID缺失,再去查找,并拷入原创 2011-12-18 21:44:46 · 683 阅读 · 0 评论 -
属性显示对话框
对话框的OK单击按钮实现void CPropertyDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_propName);}BEGIN_MESSAGE_MAP(CPropertyDlg, CDialog) ON_BN_CLICKED(ID原创 2011-12-19 20:13:32 · 832 阅读 · 0 评论 -
C++中的调试
TRACE0(exp) 说明: 与TRACE相似,但他把跟踪字符串放在代码段中,而不是DGROUP,因此使用少的DGROUP空间。TRACE0是一组跟踪宏的一个变体,这些宏可用于调试输出。这一组包括TRACE0,TRACE1,TRACE2和TRACE3,这些宏不同在于所取参数的数目不同。TRACE0只取一个格式化字符串并可用于简单文本消息。TRACE1取一格式化字符串加上一个变量—一个将转储的原创 2011-12-08 18:44:54 · 645 阅读 · 0 评论 -
DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC宏
MPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。 DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。 DEClARE_D转载 2011-12-19 23:01:34 · 635 阅读 · 0 评论 -
遍历目录中的多个文件
void CdxfReadView::OnDxfDeleteLine(){ // TODO: 在此添加命令处理程序代码 CFileFind filefind; BOOL fileExit=filefind.FindFile("c:\\删除四条线\\*.dxf"); while(fileExit) { fileExit=filefind.FindNextFile();原创 2012-02-14 20:13:30 · 623 阅读 · 0 评论 -
DXF图元文件提取与显示(二)-Line
#pragma once#include "dxfmeta.h"class DXFLine : public DXFMeta{ public: explicit DXFLine(UINT rCount,UINT seekBytes); virtual ~DXFLine(void); virtual string OutputFormat(); void SetLine原创 2011-11-24 22:10:32 · 3433 阅读 · 0 评论 -
DXF图元文件提取与显示(一)
#include "StdAfx.h"#include "DXFMeta.h"//图元名称const string DXFMeta::NAMES[MetaTypes]={"OTHER","LINE","CIRCLE","POLYLINE"};//************************************// 图元对象是所有图元的基类,针对DXF的行和偏移// 的字节数原创 2011-11-24 22:08:52 · 6005 阅读 · 1 评论 -
MFC 图形设计
设备描述表是Windows定义的数据结构,包含的信息允许windows将输出请求转换为对正在使用的特定物理输出设备的动作。输出动作采用设备无关性GDI调用形式,将图像绘制在任何显示器或者其他输出设备上。1、使用BeginPaint(hwnd,&ps)来获取设备描述表句柄,必须使用EndPaint(hwnd,&ps)来释放2、使用GetDC()来获得,必须使用ReleaseDC()来释放原创 2011-10-24 21:03:12 · 951 阅读 · 0 评论 -
MFC DLL静态链接
在使用向导创建基于MFC的DLL时,有如下三种类型MFC扩展DLL使用MFC扩展DLL,产生的DLL只能与MFC客户程序一起工作。他可以导出C++类给客户端。导出的函数可以使用c++/MFC数据类型作为参数或返回值,导出一个类时,客户端能创建类对象或者派生这个类。同时,在DLL中也可以使用DLL和MFC。VC的MFC类库也保存在一个DLL中,MFC扩展DLL动态链接到MFC代码原创 2011-10-26 10:59:59 · 5503 阅读 · 0 评论 -
Windows via C/C++ 学习(5)Windows中使用的Unicode和ANSI函数
http://www.cnblogs.com/Fly-pig/archive/2011/01/11/1932954.htmlWindows 给出的带有字符串参数的函数都有两个相同版本的函数与之对应,一个是 Unicode 版本,一个是 ANSI 版本,分别以 FunctionNameW 和 FunctionNameA 表示,FunctionName 实际上是一个宏定义。转载 2011-11-16 00:35:29 · 753 阅读 · 0 评论 -
文件在缓存中操作
wcout.imbue(locale("chs")); clock_t start,end; start = clock(); CFile m_curFile(_T("c:\\design2.dxf"),CFile::modeRead); UINT uFileSize = (UINT)m_curFile.GetLength(); char* istrBuffer = new char[u原创 2011-11-16 20:22:31 · 483 阅读 · 0 评论 -
eof读取问题
while (1) { iss.get(chr); if (iss.eof()) { break; } printf("%c\n", chr); cout << iss.eof() << endl; }文件或者其他需要判断eof的时候,必须记住,要读完立刻判断。读完原创 2011-11-16 20:18:50 · 600 阅读 · 0 评论 -
DXFReader
// DXFReader.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include #include #include #include #ifdef _DEBUG#define new DEBUG_NEW#endifusing namespace std;struct Line{ char * origi原创 2011-11-18 11:15:13 · 992 阅读 · 0 评论 -
MFC发送消息(一)
进程间通信除了管道邮槽等高级方法外,还可以用自定义消息的方法来实现。windows是消息驱动的,系统定义了很多消息,但同时它也允许我们自己定义消息。自定义消息有两种方法:(1)在WM_USER上加一个值来定义消息。WM_USER(0x400)到0x7FFF都可以用来自定义消息(一般取WM_USER+100)。以MFC对话框程序为例,定义自己的消息要分以下几个步骤首先在发送端:①定义转载 2011-10-31 11:47:56 · 6749 阅读 · 0 评论 -
MFC技巧和小知识
1、MFC中设置TAB 顺序,在对话框的设计视图中,选择菜单【格式】|【TAB 顺序】2、单选框的设置,对于属于同一组的单选框,只需要在属性面板中将第一个单选按钮的GROUP属性置为true,,其余设置为false。系统会根据TAB order顺序,直到碰到下一个GROUP为true的控件,这之前的为一组,之后的为下一组。3 、只能选择的下拉菜单,选用ComboBox控件,类型选择Drop原创 2011-10-23 23:56:43 · 977 阅读 · 0 评论 -
MFC JSONCPP 配置
将JSONCPP以静态库方式导入,需要注意的是,项目中的代码生成中的运行库,和JSONCPP的静态库项目的代码生成的运行库要一致,否则将报如下错误afxver_.h(81): fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds图1是JSONCPP的lib_json项目的图2是自己的项目的原创 2011-11-02 20:05:59 · 3558 阅读 · 0 评论 -
Visual C++ in Short: Encoding and decoding with Base64
Base64 is a popular encoding to convert arbitrary data into a format that can be transmitted as an ASCII string. ATL provides a few functions that implement the Base64 specification.To encode with B原创 2011-11-22 14:57:14 · 842 阅读 · 0 评论 -
CString和CStringA之间的转换
使用UNICODE字符集编程时,总是需要使用那些不支持UNICODE的库,例如sqlite3,Lua等必须使用char*类型的。这个时候用CStringA是最好的。另外CStringA与CString可以灵活地随意转换赋值,注意不能这样用:CString str1;CStringA str2=str1;而要这样用:CStringA str2;str2=str1;原创 2011-11-23 13:56:30 · 12250 阅读 · 4 评论 -
MAP原理及其在MFC中的实现
一、 Map的基本知识 映射(Map),又称为字典(Dictionary),是由关键字(Key)及其对应的元素值(Value)所组成的元素单元(Element)的表单式集合。 通常,对于Map而言,使用给定的Key,可以迅速地从单元集合中检索到相应的元素。因此,在需要对大量数据进行查找操作而查找的性能又占据重要地位的场合,Map无疑是一种较理想的容器。譬如,在MFC中,使用Ma转载 2011-11-23 15:12:39 · 853 阅读 · 0 评论 -
创建CMAP出错问题
error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)1> d:\programfiles\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(534) : 参见“CObject::CObject”的声明1> d:\progra转载 2011-11-04 01:29:40 · 1173 阅读 · 0 评论 -
CMap的设置
class CModelManager : public CObject{public: static CModelManager& GetInstance(); void AddModelInfo(CString,CModelInfo&); CModelInfo* GetModelInfo(CString mInfoID);protected: virtual ~CModelM原创 2011-11-04 10:34:45 · 772 阅读 · 0 评论 -
DXF图元文件提取与显示(三)-Circle
#pragma once#include "dxfmeta.h"class DXFCircle : public DXFMeta{public: explicit DXFCircle(UINT rCount,UINT seekBytes); ~DXFCircle(void); virtual string OutputFormat(); friend ostream& ope原创 2011-11-24 22:14:46 · 2864 阅读 · 0 评论 -
QT图形程序中同时启动命令提示符窗口
然后就可以用,qDebug()原创 2012-02-25 10:46:19 · 895 阅读 · 0 评论