3.填空题

更新于 2026年10月10日 版权声明
3.填空题

1)对话框是Visual C++6.0中唯一可以进行____窗口编辑,并自动创建控件的窗口。在对话框启动时,基类成员函数____会自动创建控件。按照对话框资源模板中预先编辑好的控件____、____和____等自动创建。

2)控件并非只能在对话框窗口中才可以创建,无论是在____还是____中都可以创建控件,甚至在控件内还可以再创建控件。

3)在非对话框窗口中,就不能通过____来自动创建控件了,只能调用____的Create函数手动创建。

4)手动创建控件难度大而且麻烦,不但____的过程要手动编码实现,而且____过程也要手工编码实现。在非对话框窗口内不能____,只能通过手动创建控件来实现。因此,这是一种包括____、____以及对话框等,各种类型窗口通用的控件创建方法。

5)跟踪查看控件类创建函数的源代码,其共同特点如下。

①所有控件类的创建函数,都通过调用基类成员函数CWnd::Create来实现。

②所有控件创建时,都要在CWnd::Create函数中代入____、____、____和父窗口等。

③所有控件创建时,都要在CWnd::Create函数的第一个参数中代入控件种类,即____。

④有些控件要有标题文字(如,按钮),在CWnd::Create的____中代入,否则代入NULL。

6)窗口类型名很重要,它就是窗口“体内的基因”,指定什么窗口类型名就能创建出什么类型的窗口。窗口类型名允许____,系统已注册的包括____、____以及所有控件。

7)对比CWnd::Create和CWnd::CreateEx两个函数。

①从函数格式上看,后者只多出一个参数(第一个参数),是用于指定的____。

②若要创建的窗口无需扩展风格(例如,边缘凸起或下陷等),就直接调用____函数。

③若要在创建窗口时指定扩展风格就调用____函数,在第一个参数中指定扩展风格(如同在第1节中创建第2个编辑框那样)。

④____函数只限于创建包括所有控件在内的子窗口,不能用于创建主窗口。

⑤____函数不但可以创建子窗口,还可以用于创建框架类型的主窗口。

8)注册窗口类型名有以下3种方法。

①调用____和____函数。最早期的注册API函数,主要用于Win32程序开发。

②调用____函数。MFC全局函数,先检测要注册的窗口类型是否存在。若是已经注册过的类型名则无需再次注册,内部封装的是____和____函数。

③调用____函数。MFC全局函数,内部调用AfxRegisterClass函数。并将接口参数简化以方便调用,返回值是自动生成的随机字符串作为____。

9)注册和创建自定义窗口主要的步骤如下。

①在堆空间内申请一个窗口对象,并保存在CWinApp类的____成员变量中。(https://www.daowen.com)

②根据指定的____、____和____等信息注册窗口类型。

③调用____函数,根据注册过的窗口类型名创建自定义窗口。

④在InitInstance函数结束时,返回TRUE值。

10)窗口根据风格分类主要有三大类。

①重叠式窗口(WS_TILEDWINDOW或WS_OVERLAPPEDWINDOW),具有应用程序主窗口的全部特点。它的非客户区包括一个____、____、____和最小化、最大化按钮。

②弹出窗口(WS_POPUPWINDOW),具有____或者____的全部特点。它的非客户区是一个固定大小的框架。

③子窗口(WS_CHILDWINDOW),具有类似____的全部特点。它不能作为主窗口,一般不显示非客户区,只有依赖于父窗口才能存在。

11)总结使用自定义窗口做主窗口的特点如下。

①CWnd::CreateEx函数是非阻塞的,因此,必须在____内申请窗口类对象。

②在申请堆空间时要指定____的对象,才能在____中接收并处理窗口的消息。

③申请的窗口派生类对象的地址,必须要保存在____中。

④InitInstance函数如果返回____,或m_____是空值,则程序进程将被退出。

⑤MFC全局函数AfxGetMainWnd的返回值,就是____的值。

⑥这类程序退出进程的方式,就是销毁____关联的窗口。

12)在很多软件中,当鼠标光标停留在某个控件上方时,会自动弹出小的提示条,提示的文字内容可以是____或者____的。

13)请在表11-4中填写CToolTipCtrl类的成员说明。

表11-4 CToolTipCtrl类的成员说明

图示

(续)

图示

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)