📄 untitled-10.txt
字号:
AfxMessopBox一个不可替代的用处体现在当您想在应用程序对象的 Initlnstance函数中报告
一个错误时。MessaseBox需要一个有效的CWnd指针,因此在一个窗口创建之前无法调用
它。而AfxMessopBox可以在任何时候被调用。
什么?没有框架窗0?
Ti。Ta。不同于第回和第2章中示例程序的很重要的一点就是:它的主窗口没有使用框
架窗口,而是从CWnd中派生了自己的窗口类。并不是CFramewnd不能工作,而是CWnd含
有TicTac需要的所有甚至更多的东西。在MFC中,CWnd是所有窗口类的根。根据编写应
用程序的不同,你可能会经常从CWnd派生些需要的东西,或许根本什么也不需要。可是每
个MFC程序员仍然应该知道一些这方面的知识,学习从CWnd派生一个窗口类也可以帮助
我们明确MFC程序没必要非使用框架窗口不可。
创建自己的CWnd派生窗口类很简单。对初学者,您可以从CWnd而不是从Cframewnd
中派生窗口类。在BEGIN.MESSAGE—MAP宏中,确保指定CWnd而不是Cframewnd作为
基类。然后,在窗口的构造函数中,使用AfxRegisterwndClass来注册WNDCLASS并调用
CWnd:: CreateEx创建窗口。还记得在第回章的开头,学习了一个 SDK风格的 Windows应用
程序的C语言源代码吗?在创建一个窗口之前,WinMain用描述窗口类属性的值初始化了
一个 WNDCLASS结构,然后调用:: RegisterClass来注册 WNDCLASS。通常由于 MFC已经为您
做了,因此在 MFC程序中不需要注册 WNDCLASS。将 CFramewnd:: Create的第一个参数指
定为NULL表示接受默认的WNDCLASS。但是,当您从CWnd派生时,必须注册自己的
WNDCLASS,这是由于 CWnd:: CreateEx不接受 NULL WNDCLASS名称。
AfxRegisterwndClass函数
在MFC中,用它的全局函数AfxR哈sterwndClass注册WNDCLASS非常容易。如果您使
用:: RegisteKlass或 MFC的 AfxRegisterClass来注册一个 WNDCLASS,则您必须初始化 WND-
CLASS结构中的每个字段。而AfxRegisterwndClass却为您填写了大多数字段,只让您指定
MFC应用程序通常关心的4个值。AfxRegisterwndClass的原型如下:
LPCTSTR AfxRegisterwndClass(UINT nClassstyle,HCURSOR hCursor=O,
HBRUSH hbrBBCkgrognd= 0, HICON hlcon= 0)
返回值是指向包含WNDCLASS名称的非空结尾字符串的指针。在学习TicTac如何使用
AfxRegisterwndClass之前,让我们仔细看一下这个函数本身和它接收的参数。
nClassstyl。指定了类样式,定义了窗口的某种操作特性。nClassstyle是表3-5列出的位
标志的零个或多个组合。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -