桂林电子科技大学 windows程序设计 考试真题(貌似去年的)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题(10×2’)
1、在C++中,在类中定义的项默认时是(A)
A、private
B、protected
C、public
D、default
2、当双击鼠标左键时,产生下列哪个消息(D )
A 、WM_LBUTTONDOWN
B、WM_RBUTTONDOWN
C 、WM_RBUTTONUP
D、WM_LBUTTONDBLCLK
3、下列定义了源程序使用资源的文件是(D)
A、项目文件
B、C语言源程序文件
C、头文件
D、资源描述文件
4、在windows.h头文件中下列哪项预定义的光标常量的属性为“箭头光标”(A)
A、IDC_ARROW
B、IDC_CROSS
C、IDC_HAND
D、IDC_HELP
5、程序员可以在菜单项名中加入符号(A),以定义该菜单项的热键。
A、&
B、#
C、@
D、%
6、在MFC中下列不属于设备描述表类的是(C)
A、CClientDC
B、CWindowDC
C、CControlBar
D、CPaintDC
7、应用程序调用下列函数(A)加载位图并获取位图的句柄?
A、LoadBitmap
B、SelectObject
C、GetObject
D、ReleaseDC
二、填空题(10×2’)
1、C++的基本数据类型分为三类,即整型、__浮点型_____和__无值型______。
2、重载是C++的一个重要特征,它包括____函数重载______和__操作符重载________。
3、根据windows API函数完成的功能,可将其分为三类:__窗口管理函数_________、___图形设备函数_______和系统服务函数。
4、入口函数WinMain _____和_____窗口函数WndProc____________是windows应用程序的主体。
5、常用的三种获取设备环境的方法是调用函数__BeginPaint__________、___GetDC_________和GetDCEx。
6、请写出windows编程中最常见的文本输出函数TextOut的函数原型:
BOOL TextOut
(
HDC hdc,
int X, int Y, //(X,Y)为用户区中字符串的起始坐标
_LPCTSTR IpString____________
_int nCount____________
)
6、在windows应用程序中加载菜单的方法有三种:在窗口类中加载菜单、_在创建窗口时加载菜单_________和_动态加载菜单____________。
7、位图的操作过程包括:__定义____、加载或创建、选入内存设备环境和___输出_____。
8、Windows系统提供的标准控件主要包括:____按键控件_______、滚动条控件、
静态控件、___列表框控件________、编辑框控件和组合框控件等。
9、滚动条在形式上可分为___窗口滚动条___________和___子窗口滚动条控件_____________两种。
三、简答题
1、windows编程中窗口的含义是什么?
答:窗口是windows应用程序基本的操作单元,是应用程序与用户之间交互的接口环境,也是系统管理应用程序的基本单位。
2、什么是图形设备接口?
答:图形设备接口是windows系统的重要组成部分,负责系统与用户或绘图程序之间的信息交换,并并控制在输出设备上显示图形或文字。
3、说明Windows 应用程序的主函数,窗口函数与Windows 系统之间的关系。
答:Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得信息并把消息派送给系统之后,由系统调用的用来处理消息的函数。
4、什么是序列化?什么是永久性对象?
答:序列化:就是指应用程序可以把对象的当前状态,以文件的形式写入永久性存储体中,在需要时还可以从永久性存储体中读取它,并可以在应用程序中重建对象的过程。
永久性对象:具有描述自身信息能力的类的对象。
5、简述在应用程序的窗口中使用一个控件的步骤?
答:(1)首先选择控件所属的类,创建该类对象;
(2)然后向应用程序的消息映射中添加需要的信息;
(3)最后实现消息响应函数。
6、什么是消息循环?
答:在创建了窗口的应用程序中,应用程序将要不断地从消息队列中获取信息,并将信息指派给指定的窗口处理函数来处理,然后再回来从消息队列中获取信息,这个不断重复的工作过程叫做消息循环。
四、编程(10×2’)
1、创建一个窗口菜单的架构,要求动态的提创建主菜单栏中的“统计计算”菜单,菜单包含“求和”、“方差”、“平均值”和“均方根”四个菜单项。
程序运行结果如下图所示,假设其他必要的函数以及头文件已经给出,请根据注释,填写程序。
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
//处理菜单消息
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDM_ADDMENU://在主菜单中添加弹出式统计计算菜单
hmenu=GetMenu(hwnd); //获取主菜单句柄
haddmenu=____________;//动态创建菜单
//在创建的菜单中增加菜单项
______________________________________________________;
_______________________________________________________;
_______________________________________________________;
_______________________________________________________;
//将创建的弹出式菜单插入主菜单中
______________________________________________________________;
//相应改变菜单中有关绘图统计计算菜单项的属性
____________________________________________________;
____________________________________________________;
___________________________; //重新显示窗口菜单
_______;
case ……
break;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
2、编写程序,在窗口中显示“VC中显示字体与背景”,字体为红色,背景为黄色。
程序运行结果如下图所示,假设其他必要的函数以及头文件已经给出,请根据提示,填写程序。
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ; //设备句柄
PAINTSTRUCT ps ; //画刷结构
RECT rect ; //无效矩形区
static LOGFONT lf;
HFONT holdFont,hnewFont;
switch (message) //消息处理函数
{ ………………
case WM_PAINT: //绘制消息
lf.lfHeight= -64;
lf.lfWeight=500;
lf.lfPitchAndFamily=DEFAULT_PITCH & FF_DONTCARE;
lf.lfCharSet=GB2312_CHARSET; //选择字符集
strcpy(lf.lfFaceName,"黑体"); //字符串赋值,设置字体
hnewFont=__________________; //创建一种新的逻辑字体
hdc =__________________________; //得到设备环境句柄______________________________; //得到需要绘制的客户区
_______________________________ ; //得到需要绘制的客户区
holdFont=______________________________;//选择新的字体格式且保存老的画笔
____________________________; //设置文本颜色
____________________________; //设置背景颜色
DrawText(hdc, "VC中显示字体与背景", -1, &rect, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
________________________; //保存原来的字体格式
____________________; //删除新的字体格式
____________________; //结束绘制,与BeiginPaint函数配套
return 0 ;
case ……
……
}
return……
}。