2012-08-25 23:20
⁄ 工业·编程
⁄ 共 5335字
1,windows程序设计是种事件驱动方式的程序设计,主要基于消息的。当用户需要完成某种功能时,需要调用OS某种支持,然后OS将用户的需要包装成消息,并投入到消息队列中,最后应用程序从消息队列中取走消息并进行响应。 2,消息结构: typedef struct tagMSG { // msg HWND hwnd; //接收消息的窗...
MFC阅读全文
2012-08-25 23:18
⁄ 工业·编程
⁄ 共 2400字
1. MFC初始化的过程
通过全局变量theApp对象(为CMyWinApp类型)创建CMyFrameWnd完成建立窗口。可惜的是仿真中没有delete CMyFrameWnd对象。应该通过虚析构函数delete对象。
2.RTTI功能
为了能够达到RTTI,设计一个CRunTimeClass用于保存一些信息(类名、基类信息、函数指针-动态创建对象使用、模式等)。
设计两类宏,一类宏是在类的声明中使用,主要是给类增加一些成员(数据成员和成员函数)。为RTTI,主要增加一个静态的CR...
MFC阅读全文
2012-08-25 23:16
⁄ 工业·编程
⁄ 共 1788字
MFC封装了WIN API.大家都知道.但是MFC应用程序的真正流程又有多少人知道呢? 下面就是我对MFC启动代码的一些剖析. 在TCHAR.H里,有这么2小段define.通过我的简化,我们可以看到: //TCHAR.H #ifdef _UNICODE #define _tWinMain wWinMain #else #define _tWinMain WinMain #endif 由于为了支持UNICODE,C运行库对WinMain其实区分了UNICODE版和ANSI版.对UNICODE版的程序,C运行库将调用wWinMain,而对于ANSI...
MFC阅读全文
2012-08-25 23:00
⁄ 工业·编程
⁄ 共 8018字
很多刚学MFC的人都会被MFC给弄的晕头转向。以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如何开始运行的呢?到底MFC有没有遵从最基本的C++的标准呢?到底MFC的代码运行的顺序又是怎么样的呢?那么多个文件,那么多函数,到底哪一个先运行,哪一个后运行,哪一个调用哪一个,哪一个又被哪一个调用(你看晕了吧?那么多“哪一个”^_^)?这里这么复杂...
MFC阅读全文
2012-08-25 07:01
⁄ 工业·编程
⁄ 共 1512字
这篇小短文告诉我们如何在运行时取得一个类对象的信息
如果你是从类CObject派生的类且还使用了宏DECLARE_DYNAMIC和IMPLEMENT_DYNAMIC,
DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE或者DECLARE_SERIAL和IMPLEMENT_SERIAL,
那么CObject就可以在运行时检查一个类对象所属的具体类。
当你想检查一个函数参数的具体类型或者想针对...
MFC阅读全文
2012-08-24 13:50
⁄ 工业·编程
⁄ 共 1277字
文档将描述MFC框架程序中WinApp , Document Templates, Document, View , Frame创建和所有关系;
CWinApp 在一个系统程序中只有一个CWinApp对象,该对象会被静态的创建并在MFC框架内部实现的WinMain()中进行初始化(动态链接库程序中不会包含一个CWinApp实例且程序的初始化是在DllMain()中进行)
CWinApp负责管理一个Document Template的链表(CPtrList), 在一个程序中通常会有一个或多个 Document Template,这些Document Templ...
MFC阅读全文
2012-08-24 03:26
⁄ 工业·编程
⁄ 共 1510字
一、MFC允许对象在程序运行的整个过程中持久化的串行化机制
(1)串行化是指向持久化存储媒介(如一个磁盘文件)读或写对象的过程。
(2)串行化用于在程序运行过程时或之后修复结构化数据(如C++类或结构)的状态。
(3)MFC支持CObject类中的串行化,所以,所有继承于CObject的类可以利用CObject的串行化协议。
(4)串行化的基本思想:
a、对象必须能将其当前状态写...
MFC阅读全文
2012-08-24 03:24
⁄ 工业·编程
⁄ 共 599字
(1)在MFC中,文档类负责管理数据,提供保存和加载数据的功能;视类负责数据的显示,以及给用户提供对数据的编辑和修改功能。
(2)MFC给我们提供Document/View结构,将一个应用程序所需要的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,我们可以在派生类中重写这些函数。
(3)有关文件读写的操作在CDocument的Serialize函数中进行;有关数据和图形显示的操作在CView的OnDraw函数中进行。
(4)我们在其派生类...
MFC阅读全文
2012-08-23 22:56
⁄ 工业·编程
⁄ 共 3323字
第一种方法:使用SetWindowPos函数
CWnd::SetWindowPosBOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags );
返回值如果函数成功,则返回非零值;否则返回0。
说明 调用这...
MFC阅读全文
2012-08-23 22:33
⁄ 工业·编程
⁄ 共 2098字
CDC 所有设备环境类的基类,对GDI 的所有绘图函数进行了封装;可用来直接访问整个显示器或非显示设备(如打印机等)的上下文
CPaintDC CPaintDC 用于响应窗口重绘消息(WM_PAINT)的绘图输出,不仅可对客户区进行操作,还可以对非客户区进行操作
CClientDC 代表窗口客户区的设备环境,一般在响应非窗口消息并对客户区绘图时要用到该类
CWindowDC 代表整个窗口的设备环境,包括客户区和非客户区;除非要自己绘制窗口边框和...
MFC阅读全文