上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: 1、为了能够动态创建,程序必须维护一个CRuntimeClass的类,当需要去识别一个类的时候,就依次去查找这个链表,而这个是通过一组宏来实现的。因为是一个链表,所以就需要初始化,这个初始化在CObject中用稍有不同的宏来实现的。2、CRuntimeClass的结构:LPCSTR m_lpszClassName //类名int m_nObjectSize //类字节大小,不计算分配的内存UINT m_wSchema //一般为0xFFFFCObject* ( PASCAL* m_pfnCreateObject )( ... 阅读全文
posted @ 2013-09-05 16:03 Fly Hawk 阅读(770) 评论(0) 推荐(0) 编辑
摘要: 原始CRT:是指Microsoft开发的C Runtime Library,用于操作系统的开发及运行。后来在此基础上开发了C++ Runtime Library,所以现在CRT是指Microsoft开发的C/C++ Runtime Library;MFC中的CRT:CRT被封装成产品,随VC编译器一起发布。此时CRT产品是Windows格式的。ATL是建立在CRT上的,对于不用链接,是因为ATL库静态链接了CRT,所以它可以在CRT之外运行 阅读全文
posted @ 2013-09-05 13:02 Fly Hawk 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 其实,unicode字符已经被Cfile输入了文件当中。但是字处理软件不知道其中是unicode字符,将他们统统当做了单字节字符处理。所以我只需要加入unicode的识别码就行了CFile file;if(file.Open(path.GetBuffer(), CFile::modeCreate | CFile::modeWrite)){ WORD unicode = 0xFEFF; file.Write(&unicode,2); //此处写入unicode的识别码 file.Write(content, wcslen(content)*sizeof(wchar_t)); CStrin 阅读全文
posted @ 2013-09-04 20:34 Fly Hawk 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 1、方法1:CStdioFile file;CString strContent;CString temp;char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );setlocale( LC_CTYPE, "chs" ); if(NULL != file.Open(path.GetBuffer(), CFile::modeRead)){ while (file.ReadString(temp)) { strContent += temp; strContent += "\n"; } file.Clos 阅读全文
posted @ 2013-09-04 20:10 Fly Hawk 阅读(1170) 评论(0) 推荐(0) 编辑
摘要: 1、在头文件中加入#include "locale.h"2、在读取文件的前面加上:char* old_locale = _strdup( setlocale(LC_CTYPE,NULL) );setlocale( LC_CTYPE, "chs" ); 3、在读取文件的代码后加上:setlocale( LC_CTYPE, old_locale ); free( old_locale ); 阅读全文
posted @ 2013-09-04 20:03 Fly Hawk 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 1、多用抽象类2、一个类应该只有一种类型的功能3、类与类之间关系不要太紧密,可以通过中间类的方式来联系4、封装变化 阅读全文
posted @ 2013-09-04 18:49 Fly Hawk 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 整体:1、MFC只是封装了Win32 SDK的创建窗口的过程,只不过微软将某些代码为我们写,在编译程序时,会将相应的代码链接到代码中。2、CDocTemplate是一个对框架类、视图类、文档类进行关联。通过文档模版,可以确定创建或者打开一个文档时,用什么框架和视图进行管理。3、CDocManager进行管理CDocTemplate。细节:1、CWnd不代表一个窗口,而是对一个窗口的相关操作进行管理。窗口被销毁后,也许CWnd的类的生命周期没有结束。2、CView是CMainFram的子窗口。3、WinMain函数在appmodul.cpp文件中4、过程:app-->WinMain--&g 阅读全文
posted @ 2013-09-04 15:31 Fly Hawk 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 1、将CXXView.h与CXXView.cpp中的CView全部替换成CScrollView;2、为CXXView实现OnInitialUpdate函数,并添加 SetScrollSizes(MM_TEXT, CSize(800, 600)); 阅读全文
posted @ 2013-09-02 19:59 Fly Hawk 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 如果在文档类中,直接调用CView类,编译器可能会产生这样的错误:f:\项目工程\vs\hbcompile\hbcompile\hbcompileview.h(16): error C2143: syntax error : missing ';' before '*'1>f:\项目工程\vs\hbcompile\hbcompile\hbcompileview.h(16): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int1&g 阅读全文
posted @ 2013-09-02 19:42 Fly Hawk 阅读(242) 评论(0) 推荐(0) 编辑
摘要: SDI:doc:POSITION p = GetFirstViewPosition();if(p != NULL){m_strTemplateContent = strContent;CView * pView = GetNextView(p);pView->UpdateWindow();}view:重载OnUpdata函数,并作相应的处理。 阅读全文
posted @ 2013-09-02 18:51 Fly Hawk 阅读(160) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页