设为首页 加入收藏

TOP

MFC、VC++综合作业题(一)
2016-04-27 17:25:25 】 浏览:2678
Tags:MFC 综合 作业

一、简答题

1、在文档/视图结构的应用程序中,视图类对象是如何获取文档类对象中数据的

答:通过GetDocument()函数

2、假设建立一个工程名为MyPrj的工程,利用MFC AppWizard生成文档/视图结构应用程

序框架的4个MFC派生类,简述这四个类名和它们的功能。
答:

(1)CMyPrjApp应用程序类:应用程序的起点,负责应用程序的启动。

(2)CMyPrjFrame框架窗口类:应用程序的框架窗口。

(3)CMyPrjView视图类:专门用来堆应用程序的数据进行显示。

(4)CMyPrjDoc文档类:保存程序中的数据成员,对程序中的数据进行管理。

3、在Windows程序设计中,如何显示和更新窗口?
答:调用windows系统函数ShowWindow( )显示窗口,UpdateWindow( )更新窗口。

4、试说明以下是什么句柄?

(1)HWND :窗口句柄

(2)HINSTANCE :当前应用程序实例句柄

(3)HDC :设备上下文句柄

5、Windows应用程序的主要函数有哪3个主要任务?
答:注册窗口类创建应用程序的窗口建立消息循环。

6、在窗口类CFrameWnd中需要封装哪些成员?
答:在窗体类CFrameWnd中需要封装窗口句柄hWnd窗口类型属性的定义窗口类型的注册窗口的创建和显示更新窗口

7、应用程序类CWinApp应该具备哪些主要功能?
答:在CWinApp中主要有两个功能,一是调用成员函数InitInstance()来完成窗口的设计、注册、创建和显示工作;二是调用成员函数Run()来实现消息循环。

8、在MFC中CDC的派生类有哪几个?试说出它们的作用?
答:(1)CPaintDC类:在WM_PAINT消息的处理函数OnDraw中使用的窗口用户区的设备描述环境。只能在视图类的OnDraw()函数中使用。

(2)CClientDC:应用在除WM_PAINT之外的消息处理函数中。可以在除OnDraw()函数之外的任何地方使用。

(3)CWindowDC:提供整个窗口类绘图的设备描述环境。表示的是整个窗口。

(4)CMetaFileDC:代表windows图元文件的设备描述环境。

9、在CDC中,如何把自己建立的绘图工具载入设备描述环境?
答:

10、如何使用CDC类提供的绘图方法绘图?
答:直接使用CDC类型的指针变量,调用绘图函数进行绘图。

11、在MFC中,应用程序的界面有哪3种方式?
答:题目说的不明不白,我猜测是单文档、多文档、对话框这三种吧。

12、分别说明什么是SDI界面的程序和什么是MDI界面的程序?
答:

单文档:在单文档界面的应用程序中,任何一时刻只能操作一个文档。

多文档:在多文档界面的应用程序中,用户可以同时操作多个文件。

13、文档类的成员函数UpdateAllViews的作用是什么?
答:文档对应多个视图时,更新所有视图,它是通过调用每个视图类的OnUpdate()函数来更新所有与文本关联的视图。

14、常用的客户区鼠标消息有哪些?(注意:只考虑鼠标两键情况,即只有鼠标左键和右键)
答:

WM_LBUTTONDBLCLK :鼠标左键双击

WM_LBUTTONDOWN :鼠标左键按下

WM_LBUTTONUP :鼠标左键松开

WM_RBUTTONDBLCLK :鼠标右键双击

WM_RBUTTONDOWN :鼠标右键按下

WM_RBUTTONUP :鼠标右键松开

15、程序运行时,用户选中一个菜单项,会发出那种消息?根据什么来判断消息源?
答:用户选中菜单项时,会发出WM_COMMAND消息。系统根据菜单项的标识ID来判断消息源。

16、为什么在Windows应用程序中不直接使用键盘的扫描码而使用与键盘无关的虚拟码,怎样理解Windows中设备无关性这个概念,设备无关性对编写应用程序有什么作用。
答:
为了方便程序设计,windows为每个按键都提供了相应的与设备无关的编码,这个编码便称为虚拟码。因此在windows应用程序的编写中,用户可以忽略扫描码,而直接使用虚拟键来对键盘进行操作。

键盘的扫描码是当用户直接敲击键盘上的按键时,由键盘的接口直接产生的与该键对应的一种编码。由于市面上的键盘种类很多,所以不同类型的键盘产生的扫描码有可能是不同的,也就是说,这种扫描码是与具体的键盘相关的。这样在编写程序时会有很大的不便。所以在Windows编程中提出了设备无关性这个概念,它是基于通用性来设计的,基于这种方法设计出来的程序是不依赖于具体的硬件的,甚至不依赖于软件。它不单单是针对键盘。另外,它还应用在网络通信等方面。因此,设备无关性为人们编写程序带来了很大的方便。

17、在 MSG 结构类型中,第一个成员所代表的含义是什么?

MSG 结构类型定义如下:

typedef struct tagMSG

{

HWND hwnd;

UINT message;

WPARAM wParam;

LPARAM lParam;

DWORD time;

POINT pt;

} MSG, *PMSG
答:HWND hwnd; hwnd是窗口句柄。第一个成员变量hwnd表示消息所属的窗口。在Windows程序中,用HWND类型的变量来标识窗口。

18、简述在MFC中使用位图资源的步骤?
答:准备好ICON图表文件 ,在VC++中,Project | Add to Project | Files, 选择图表文件 → 在资源文件中添加如下描述句:程序资源的ID ICON【选项】 “资源文件路径”
1)把位图资源载入位图对象;
2)获得位图信息;
3)把位图选入内存设备环境;
4)显示位图。

19、GetMessage()函数在什么情况下返回0,从而导致消息循环终止程序结束。

答:在接收到WM_QUIT消息时返回0。

20、在 WNDCLASSEX 结构类型中,各个成员所代表的含义是什么?

WNDCLASSEX 结构类型定义如下:

typedef struct _WNDCLASSEX

{ UINT cbSize; //窗口的大小

UINT style; //窗口的样式

WNDPROC lpfnWndProc; //表示指向窗口函数的指针

int cbClsExtra; //表示窗口类附加字节

int cbWndExtra; //表示窗口类字节

HINSTANCE hInstance; //表示当前应用程序实例句柄

HICON hIcon; //表示指定窗口的图标

HCURSOR hCursor; //用于指定窗口的光标

HBRUSH hbrBackground; //用于指定窗口的背景颜色

LPCTSTR lpszMenuName; //用于指定窗口的菜单资源名

LPCTSTR lpszClassName; //用于指定窗口的类名

HICON hIconSm; //窗口类关联的小图标

} WNDCLASSEX

21、简述自定义消息的步骤?
答:

第一步:定义消息。开发Windows应用程序时,Microsoft推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。
第二步:在类头文件的AFX_MSG块中说明消息处理函数。

第三步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。

第四步:在用户类的消息块中,使用ON_MESSA

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++学习笔记之四 复合类型1 下一篇LeetCode最常见的面试笔试题总结

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目