3.填空题
1)I/O(____)输入/输出是计算机最古老的话题,在DOS时代处理输入/输出的函数主要就是两个,学过C语言的读者都知道是____和____函数。
2)每一个控件都可以与一个MFC控件类的对象关联,通过控件类的____操作控件。最常用的控件关联方式就是使用GetDlgItem函数,通过控件的ID获取一个控件类的对象。
3)MSDN资料说明,GetDlgItem的返回值是____,不能把返回的窗口指针长期保存,每次使用时都要重新调用GetDlgItem获得。
4)实际上,MFC操作控件有多种方式。
①调用____系列函数(包括SetDlgItemInt等函数)。
②使用ClassWizard建立____关联变量。
③使用ClassWizard建立____关联变量(结合UpdateData函数)。
④使用____系列建立控件型关联变量。
5)通过类向导(ClassWizard)可以建立____一个的成员变量,并且这个成员变量与一个指定ID的控件关联。通过这个成员变量调用控件类的____,可以操作与之关联的控件,这个成员变量就是控件型关联变量。
6)DoDataExchange就是专门处理成员变量与控件关联的函数,可以认为是成员变量与控件之间的桥梁。头文件和源文件中的特殊注释代码“//{{AFX_DATA”和“//}}AFX_DATA”,是类向导用于自身管理的代码。类似于____和____注释代码,是类向导用于管理回调函数的注释代码,AFX_DATA是类向导管理关联变量的。
7)在CWnd类中包含一系列将窗口与变量关联的函数,如下。
①CWnd::Attach。将一个窗口句柄嫁接到一个CWnd类型变量中。
②CWnd::Detach。移除嫁接到CWnd变量中的句柄。
③CWnd::SubclassWindow。____一个窗口句柄到CWnd派生类变量中(不但要把句柄关联进入CWnd对象中,而且还要将窗口的消息映射到CWnd的子类中)。
④CWnd::UnsubclassWindow。解除____。
⑤CWnd::SubclassDlgItem。根据窗口ID____对应的窗口。
8)所有Windows基础控件,都可以建立对应的____关联变量。其中有一些控件不但可以建立控件型关联变量,而且可以建立____关联变量。
9)通过阅读MSDN说明可以了解到,UpdateData函数类似于C语言的scanf和printf函数,管理控件与关联变量之间的数据更新。UpdateData(____)把界面输入的数值更新到关联变量中,UpdateData(____)把关联变量存储的数据输出到界面上。
10)UpdateData对控件数据的输入/输出是整体性的,该函数一旦执行,窗口中所有____变量将同时被更新。如果要对单个控件的数据输入/输出,则只有使用____变量或者使用GetDlgItem系列函数(包括SetDlgItemText等)。
11)MSDN的UpdateData函数备注中介绍了,在对话框类中的基类中有两处自动调用UpdateData函数的地方。一是在对话框初始化(____)时,内部调用UpdateData(FALSE)将数据更新到界面上。二是在对话框以确定方式关闭(____)时,内部调用UpdateData(TRUE)将数据从界面更新到关联的内存变量中。
12)单选按钮的使用方法比较特殊,总结其特点如下。
①每一组单选按钮都必须而且只能有一个“组长”。
②“组长”就是指选择了“Group”属性的控件,一组单选按钮的“组长”必须是该组中ID____。(https://www.daowen.com)
③通常在一组单选按钮中,第一个拖放到对话框中的为“组长”,随后依次加入的单选按钮作为“组员”。
④一组单选按钮中只有“组长”的ID是有用的,其他“组员”的ID____即可。
⑤通过类向导建立关联变量时,只要对“组长”的ID建立一个____变量即可。
13)请填写表6-10中控件的名称和隶属的MFC类。
表6-10 控件名称和隶属的MFC类

14)请填写表6-11中CListCtrl类的成员函数说明。
表6-11 CListCtrl类的成员函数说明

(续)

15)请填写表6-12中CComboBox类的成员函数说明。
表6-12 CComboBox类的成员函数说明

(续)

16)请填写表6-13中CEdit类的成员函数说明。
表6-13 CEdit类的成员函数说明

17)请填写表6-14中CButton类的成员函数说明。
表6-14 CButton类的成员函数说明
