2024年6月12日发(作者:)
第12章习题
一、概念题
1.解答要点:
⑴ 控制台应用程序。
⑵ 基于框架窗口的应用程序。
⑶ 基于文档/视图结构的应用程序。
⑷ 基于对话框的应用程序。
2.解答要点:
在Windows操作系统中,无论是系统产生的动作,还是用户运行应用程序产生的动作都称
为事件(events)产生的消息。如果程序需要消息做出反应,必然要调用相应的处理函数,如果没
有定义处理函数,则该消息被忽略。编制消息处理函数被称作消息映射。
3.解答要点:
文档类CDocument的派生类对象规定了应用程序的数据。
视图类的几个重要成员函数:GetDocument()、OnDraw()、OnInitialUpdate()等。
4.略。
5.解答要点:
⑴ 非模式对话框的模板资源在设计时必须选中Visible属性(在属性对话框的More Styles页
中设置),若没有选中,则必须调用对话框类的成员函数ShowWindow;否则对话框不可见,而模
式对话框无需设置此属性。
⑵ 非模式对话框通过调用CDialog::Create函数来启动,而模式对话框使用CDialog:: DoModal
函数来启动。由于Create函数不会启动新的消息循环,非模式对话框与应用程序共用同一个消
息循环,这样非模式对话框就不会垄断用户的输入。Create函数在显示了非模式对话框后就立
即返回,而DoModal函数是在模式对话框被关闭后才返回的。
⑶ 非模式对话框对象是用new操作符动态创建的,而模式对话框以对象变量的形式出现的。
⑷ 非模式对话框的关闭是由用户单击OK或Cancel按钮完成的,与模式对话框不同,程序员必
须分别重载这两个函数,并且在其中调用CWnd::DestroyWindow函数来关闭对话框。该函数是用
于关闭窗口。
⑸ 必须有一个标志表明非模式对话框是否打开。应用程序根据该标志决定是打开一个新对话框,
还是仅激活原来已经打开的对话框。通常可以用拥有者窗口中指向非模式对话框对象的指针(因
为非模式对话框对象是用new操作符动态创建)作为这个标志,当对话框关闭时给该指针赋NULL
值,表明该对话框对象已不存在了。
二、填空题
1.输入消息、控制消息、系统消息、用户消息
2.WM_LBOTTONDOWN OnLButtonDown
3.CDC
4.设备环境
5.模态对话框 非模态对话框
6.构造函数 OnInitDialog()函数
7.CColorDialog、CFileDialog、CFindReplaceDialog、CFontDialog、CPrintDialog
8.CeditView
9.OnNewDocument()
10.Invalidate()或InvalidateRect()
发布评论