MFC教程(5)-- MFC对象的创建(1)
2010-03-25 20:33:46 来源:WEB开发网MFC提供的接口
MFC编程就是把一些应用程序特有的东西填入MFC框架。MFC提供了两种填入的方法:一种就是使用前一章论述的消息映射,消息映射给应用程序的各种对象处理各种消息的机会;另一种就是使用虚拟函数,MFC在实现许多功能或者处理消息、事件的过程中,调用了虚拟函数来完成一些任务,这样就给了派生类覆盖这些虚拟函数实现特定处理的机会。
下面两节将列出两类接口,有两个目的:一是为了让读者获得整体印象,二是后文将涉及到或者讨论其中的许多函数时,不显得突兀。
虚拟函数接口
几乎每一个MFC类都定义和使用了虚拟成员函数,程序员可以在派生类中覆盖它们。一般,MFC提供了这些函数的缺省实现,所以覆盖函数应该调用基类的实现。这里给出一个MFC常用虚拟函数的总览表(见表5-4),更详细的信息或它们的缺省实现动作参见MFC文档。由于基类的虚拟函数被派生类继承,所以在派生类中不作重复说明。
覆盖基类的虚拟函数可以通过ClassWizard进行,不过,并非所有的函数都可以这样,有的必须手工加入函数声明和实现。
表5-4 常见MFC类的虚拟函数接口
类 |
虚拟函数 |
覆盖的目的和功能 |
CCmdTarget |
OnCmdMsg |
发送、派发命令消息 |
OnFinalRelease |
OLE用途,引用为0时作清理工作 |
|
CWinThread |
ExitInstance |
在线程退出时作清理工作 |
InitInstance |
在线程开始时作初始化 |
|
OnIdle |
执行thread-specific idle-time处理 |
|
PreTranslateMessage |
在消息送给Windows函数TranslateMessage and DispatchMessage.之前进行消息过滤 |
|
IsIdleMessage |
检查是否是某个特别的消息 |
|
ProcessWndProcException |
截获线程消息/命令处理中的例外 |
|
ProcessMessageFilter |
线程消息过滤 |
|
Run |
实现线程特定的消息循环 |
|
CWinApp |
HideApplication |
关闭所有的窗口之前隐藏应用程序 |
CloseAllDocument |
退出程序之前关闭所有文档 |
|
转下页 |
续表 |
||
SaveModifiedDocument |
框架窗口关闭时用来保存文档 |
|
DoMessageBox |
实现客户化的messagebox |
|
DoWaitCursor |
关闭或打开等待光标 |
|
OnDDeCommand |
响应DDE命令 |
|
WinHelp |
调用WinHelp函数 |
|
CWnd |
WindowProc |
提供一个窗口过程 |
DefWindowProc |
为应用程序不处理的消息提供缺省处理 |
|
PostNcDestroy |
在窗口销毁之后被消息处理函数OnNcDestroy调用 |
|
OnNotify |
处理通知消息WM_NOTIFY |
|
OnChildNotify |
父窗口调用它给控制子窗口一个机会来处理通知反射消息 |
|
DoDataExchange |
Updata调用它来进行对话框数据交换和验证 |
|
CFrameWnd |
GetMessageBar |
返回一个指向框架窗口的状态条的指针 |
OnCreateClient |
创建框架的客户窗口 |
|
OnSetPreviewMode |
设置程序的主框架窗口进入或退出打印预览模式 |
|
NegotiateBorderSpace |
协调边框窗口的边框空间的大小(OLE用途) |
|
CMDIFrameWnd |
CreateClient |
创建CMDIFrameWnd的MDICLIENT窗,被CWnd的消息处理函数OnCreate调用. |
转下页 |
续表 |
||
GetWindowMenuPopup |
返回窗口的弹出式菜单 |
|
CDialog |
OnInitDialog |
对话框窗口的初始化 |
OnSetFont |
设置对话框控制的文本字体 |
|
OnOK |
模式对话框的OK按钮按下后进行的处理 |
|
OnCancel |
模式对话框的CANCEL按钮按下后进行的处理 |
|
CView |
IsSelected |
测试是否有一个文档被选择(OLE支持) |
OnActivateView |
视窗口激活时调用 |
|
OnActivateFrame |
当包含视窗口的框架窗口变成活动或非活动窗口时调用 |
|
OnBeginPrinting |
打印工作开始时调用,用来分配GDI资源 |
|
OnDraw |
用来屏幕显示、打印、打印预览文档内容 |
|
OnEndPrinting |
打印工作结束时调用,释放GDI资源 |
|
OnEndPrintPreview |
退出打印预览模式时调用 |
|
OnPrepareDC |
OnDraw或OnPrint之前调用,用来准备设备描述表 |
|
OnPreparePrinting |
文档打印或者打印预览前调用,可用来初始化打印对话框 |
|
OnPrint |
用来打印或打印预览文档 |
|
OnUpdate |
用来通知一个视的关联文档内容已经变化 |
|
CDocTemplate |
MatchDocType |
确定文档类型和文档模板匹配时的可信程度 |
转下页 |
续表 |
||
CreateNewDocument |
创建一个新的文档 |
|
CreateNewFrame |
创建一个包含文档和视的框架窗口 |
|
InitialUpdateFrame |
初始化框架窗口,必要时使它可见 |
|
SaveAllModified |
保存所有和模板相关的而且修改了的文档 |
|
CloseAllDocuments |
关闭所有和模板相关的文档 |
|
OpenDocumentFile |
打开指定路径的文件 |
|
SetDefaultTitle |
设置文档窗口缺省显示的标题 |
|
CDocument |
CanCloseFrame |
在关闭显示该文档的边框窗口之前调用 |
DeleteContents |
用来清除文档的内容 |
|
OnChangedViewList |
在与文档关联的视图被移走或新加入时调用 |
|
OnCloseDocument |
用来关闭文档 |
|
OnNewDocument |
用来创建新文档 |
|
OnOpenDocument |
用来打开文档 |
|
OnSaveDocument |
以来保存文档 |
|
ReportSaveLoadException |
处理打开、保存文档操作失败时的例外 |
|
GetFile |
返回一个指向Cfile对象的指针 |
|
ReleaseFile |
释放一个文件以便其他应用程序可以使用 |
|
SaveModified |
用来询问用户文档是否需要保存 |
|
PreCloseFrame |
在框架窗口关闭之前调用 |
更多精彩
赞助商链接