};
voidfun(A&a)
{a.Print();}
voidmain()
{
intm=10,n=2;
Bb(m,n);fun(b);
}
输出结果:
20
3、
#inelude
classB
{
public:
B()
{}
B(inti)
{b=i;}
virtualvoidvirfun()
{cout«”B:
:
virfun()called.'n”;}private:
intb;
};
classD:
publicB
{
public:
D()
{}
D(inti,intj):
B(i)
{d=j;}
private:
intd;
voidvirfun()
{cout«”D:
:
virfun()called.'n”;}
};
voidfun(B*obj)
{
obj->virfun();
}
voidmain()
{
B*pb=newB;
fun(pb);
D*pd=newD;
fun(pd);
}
输出结果:
D:
:
virfun()called.
第三部分(vc++)
一、单选题CDBDBBADDC
1.下面关于API的描述错误的是()
A.API是用来控制Windows各个元素的外观和行为的一套预定义的Windowj函数。
B.创建应用程序,打开窗口、描绘图形都要调用API函数。
C.Windows操作系统构建在API函数上
D.早期,windows程序员编写程序只能使用API函数
2.下面关于API的描述错误的是()
A.API函数构建在Windows操作系统上
B.创建应用程序,打开窗口、描绘图形都要调用API函数。
C.API是用来控制Windows各个元素的外观和行为的一套预定义的Windows函数DWindows应用程序构建在API函数上。
D.现在,Windows程序员编写程序只能使用API
函数
3.下面描述句柄的语句,错误的是()
A句柄是WINDOWS来标识被应用程序所建立或
使用的对象的唯一整数
B句柄中存放了WindowS寸象的数据
C句柄能区分不同的应用程序对象
D.句柄具有多种类型
4.
()
C.HDC
在Windows中,窗口句柄的类型是
A.HINSTANCEB.HFONT
D.HWND
5.在Windows中,字体句柄的类型是()
A.HINSTANCEB.HFONTC.HDCD.HWND
6.对消息循环描述错误的是()
A.GetMessage函数在消息队列非空时,取得消息并返回。
B.若GetMessage取得的是WM_CLOSE!
、则返回0,否则返回非0.
C.GetMessage函数在消息队列为空时,将一直空闲。
D.DispatchMessage将当前消息发送到对应的窗口过程中去。
7.下面四个MF(类中哪一个是管理MF(应用程序
的()
A.CWinAppB.CMainFrameC.CDocumentD.CView
8.下列类中不属于MF框架基本类的是()
A.CWinAppB.CFrameWndC.CViewD.CObject
9.关于GD的描述错误的是()
A.GDI指图像设备接口。
B.GDI负责用户和绘图程序之间的信息交换
C.GDI控制在输出设备上显示图形或文字。
D.采用了GD,编程时还需关心显示卡或打印机的驱动程序。
10.关于设备上下文的描述错误的是()
A.设备上下文是一种包含有关某个设备的绘制属性的Windows数据结构。
B.设备上下文允许在Windows中进行与设备无关的绘制。
C.设备上下文可以用于绘制到屏幕,打印机但不能绘制到图元文件。
D.设备上下文对象圭寸装了绘制线条、形状和文本等的WindowsAPI.
1、填空题
1.SendMessage和PostMessage都会向窗体发送一个消息,但SendMessage将一条消息发送至U指定窗口,立即处理而PostMessage
将一条消息投递到指定窗口的消息队列,不需要立即处理。
2.使用MFCAppWizard产生的应用程序的类型
主要包括单文档应用程序、多文档应用
程序、基于对话框的应用程序.
3.VC++的工作区窗口包含3个视图,分别是佳
视图,资源视图,文件视
图。
4.封装画刷的GDI类是CBrush•封装画
笔的GDI类是CPen•封装字体的GDI类是,封装位图的GDI类是
CBitmap。
5.Windows应用程序的消息来源主要包括系统消息
禾廿
6.Windows应用程序的消息按处理方式主要包
括命令消息、标准消息禾和通告
消息。
7.在VisualC++中,创建控件有两种方法:
一
种是,另一种是动态创
建。
8、按钮控件对应CButton类,静态文本
控件对应CStatic类,单选和复选按钮对
应CCheckListBox类。
9、在MFC的众多类中,CObject是所
有MFC类的原始基类。
10、消息处理函数OnLButtonDown响应左键
按下消息。
三、简答题
1•什么是句柄?
它在Windows程序中的作用是什么?
答:
句柄,是整个windows编程的基础。
一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用它句柄来直接阅读文件中的信息。
如果句柄不用在I/O文件中,它是毫无用处的。
句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。
2.CPaintDC,CClientDC,CWindowDC的区别?
答:
CClientDC:
(1)(客户区设备上下文)用于客户区的输出,与
特定窗口关联,可以让开发者访问目标窗口中客户区,其构造函数中包含了GetDC,析构函数中
包含了ReleaseDC
CPaintDC:
⑴用于响应窗口重绘消息(WM_PAINT)是的绘图输出。
(2)CPaintDC在构造函数中调用BeginPaint()取
得设备上下文,在析构函数中调用EndPaint()
释放设备上下文。
EndPaint()除了释放设备上下文外,还负责从消息队列中清除WM_PAINT消息。
因此,在处理窗口重画时,必须使用CPaintDC,否则WM_PAINT消息无法从消息队列中清除,将引起不断的窗口重画。
(3)CPaintDC也只能用在WM_PAINT消息处理之中。
CWindowDC:
⑴可在非客户区绘制图形,而CClientDC,
CPaintDC只能在客户区绘制图形。
(2)坐标原点是在屏幕的左上角,CClientDC,
CPaintDC下坐标原点是在客户区的左上角。
(3)关联一特定窗口,允许开发者在目标窗口的任
何一部分进行绘图,包含边界与标题,这种DC
同WM_NCPAINT消息一起发送