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