文档库 最新最全的文档下载
当前位置:文档库 › Windows程序设计题

Windows程序设计题

Windows程序设计题
Windows程序设计题

《Windows程序设计》模拟题

一.单项选择题

1. 在VC++中,项目文件的扩展名是(B)。

A)exe B)dsp

C)dsw D)cpp

2. 在MFC中,利用ClassWizard不能(D)。

A)建立新类B)进行消息映射

C)增加类的成员变量D)插入资源

3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。

A)WM_CHAR B)WM_HSCROLL

C)WM_VSCROLL D)WM_CHANGE

4. 更新菜单状态的消息是( C )。

A)WM_COMMAND B)UPDATE

C)UPDATE_COMMAND_UI D)INVALIDATE

5. 对于消息队列描述正确的是( D )

A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。

B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。

C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。

应用程序的消息对列中存储了程序的所有窗口的全部消息。

D)以上都正确

6. 在MFC中,所有的控件都是(B)类的派生类,都可以作为一个特殊的窗口来处理。

A)CView B)CWnd

C)CWindow D)CDialog

7. 使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。

A)ReleaseDC() B)delete()

C)DeleteDC() D)Detach()

8. 希望菜单无效,应该用CCmdUI类的(A)成员函数。

A)Enable B)SetRadio

C)SetCheck D)SetText

9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。

A)Enable B)SetRadio

C)SetCheck D)SetText

10. 下面(A)不是MFC设备环境类CDC类的派生类。

A)GDI B)CPaintDC

C)CClientDC D)CWindowDC

11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A)。

A)CView B)CWindow C)CDocument D)CFormView

12. 采用C++进行绘图时,(B)用于指定图形的填充样式,(A)用于指定图形的边框样式。

A)画笔 B)画刷 C)区域 D)位图

13. (C)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows 将它们送入应用程序消息队列中,由程序来处理消息。

A)系统消息B)用户消息

C)输入消息D)控制消息

14.项目文件的扩展名是(B)。

A)exe B)dsp C)dsw D)cpp

15. 在MFC中,文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(B)。

A)文件访问 B)串行化 C)文件读写 D)格式化

16. 在VC++ 在编程环境中,运行程序的快捷键是(A)。

A)Ctrl+F5 B)F7 C)Ctrl+F7 D)F5

17. 在VC++ 在编程环境中,设置和取消断点的快捷键都是(A)。

A)F9 B)F5 C)F11 D)F10

18. 在MFC中,在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的(B)。

A)Separator B)Pop-up C)Inactive D)Grayed

19. 使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用(C)释放设备上下文。

A)DeleteDC( ) B)delete( ) C)ReleaseDC( ) D)Detach( )

20. 在MFC中,(B)代表窗口客户区的显示设备上下文,(C)代表整个窗口的显示设备上下文。

A)CPaintDC B)CClientDC C)CWindowDC D)CMetaFileDC

21. 对话框的功能被封装在(B)类中。

A)CWnd B)CDialog

C)CObject D)CCmdTarget

22. (C)包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows 将它们送入应用程序消息队列中,由程序来处理消息;(D)用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A)系统消息 B)用户消息 C)输入消息 D)控制消息

23. 生成1个只具有确定和取消按钮的消息框,其参数为( C )。

A) MB_OK B)MB_YESNO

C) MB_OKCANCEL D)MB_RETRYCANCEL

24. 在Windows程序设计中如果加入了滚动条。设置滚动条的范围使用(C)函数,设置滚动条的位置使用(E)函数,获得滚动块的当前位置使用(F)函数。

A)SetPos()B)SetRange()

C)SetScrollRange()D)GetPos()

E)SetScrollPos()F)GetScrollPos()

G)GetScrollRange()

25. 消息循环的处理过程如下:

(A)函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,(B)把来自键盘的命令翻译成WM_XXX消息命令形式。(E)函数通知Windows 把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A)GetMessage( ) B)translateMessage( ) C)PostMessage( )

D)SendMessage( ) E)DispatchMessage( )

26. 如果要严格按照匈牙利命名法命名1个局部窗口句柄,以下变量命名正确的是( B )。A) g_hWnd B)m_hWnd C)g_pWnd D)m_pWnd

27. 在Windows编程约定中,应用程序接口的英文缩写是( A )。

A)API B)SDI C)GDI D)MDI

28. 在Windows编程约定中,软件开发包的英文缩写是( C )。

A) API B)SDI C)SDK D)MDI

29. 在Windows编程约定中,图像设备接口的英文缩写是( C )。

A) API B)SDI C)GDI D)MDI

30. 以下对应于unsigned long 的数据类型为:( B )

A) WORD B)DWORD C)INT D)BYTE

31. 下列选项中,不属于匈牙利命名法属性部分的是( D )。

A) g_ B)m_ C)c_ D)d_

32. 如果要严格按照匈牙利命名法命名1个全局窗口句柄,以下变量命名正确的是( A )。A) g_hWnd B)m_hWnd C)g_pWnd D)m_pWnd

33. 下列Windows数据格式中,代表设备句柄的是( B )。

A) HWND B)HDC C)HINSTANCE D)HFONT

34. "在一个窗口的正常运行的Windows程序中,把主窗口创建语句做如下改动:

hWnd = CreateWindow(NULL, szTitle, WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

则下列说法正确的是( C )。"

A)程序仍然正常运行,与改动前相比没有变化

B)程序出现编译错误

C)程序编译通过,但没有窗口显示

D)程序正常运行,窗口标题变为NULL

35. 典型的Windows窗口程序的流程为:( A )

A)注册窗口类->创建窗口->显示窗口->更新窗口->消息循环

B)创建窗口->注册窗口类->显示窗口->更新窗口->消息循环

C)创建窗口->注册窗口类->显示窗口->更新窗口->消息循环

D)注册窗口类->创建窗口->更新窗口->显示窗口->消息循环

36. 菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为true。( D ) A) Visible B)Grayed C)Enable D)S eparator

37. 在Windows消息机制中,菜单消息类型是:( B )

A) WM_PAINT B)WM_COMMAND

C) WM_CREATE D)W M_CLOSE

38. 在Windows编程中,代表键盘的"↑"键的虚拟键值是( A )。

A) VK_UP B)WM_KEYDOWN

C) WM_KEYUP D)V K_DOWN

39. 在Windows编程中,响应键盘按键按下消息的Windows消息是( B )。

A) VK_UP B)WM_KEYDOWN

C) WM_KEYUP D)V K_DOWN

40. 在Windows编程中,按下键盘的"A"键后,返回的Windows消息是( B )。A) VK_A B)WM_KEYDOWN

C) A D)DIK_A

41. 在Windows编程中,按下鼠标左键产生的Windows消息是( B )。

A) WM_KEYDOWN B)WM_LBUTTONDOWN

C) WM_LEFT D)WM_RBUTTONDOWN

42. 下列哪个缩写是微软提供的C++语言的帮助库?( B )

A) MFC B)MSDN C)API D)SDK

43. Windows编程中,定时器消息是( B )

A) WM_TIME B)WM_TIMER

C) WM_ON_TIME D)WM_COMMAND

44. GDI环境中,窗口的坐标系是如何构成的?( D )

A)左上角为原点,x轴正方向为水平向右,y轴正方向为竖直朝上

B)中间为原点,x轴正方向为水平向右,y轴正方向为竖直朝上

C)左下角为原点,x轴正方向为水平向右,y轴正方向为竖直朝下

D)左上角为原点,x轴正方向为水平向右,y轴正方向为竖直向下

45. 以下选项中,GDI不能支持的是:( B )

A)位图 B)Flash动画

C)直线和曲线 D)文字

46. 设备环境DC的全称为:( B )

A) Device Content B)Device Contexts

C) Device Config D)Device Conter

47. InvalidateRect的作用是( B )

A)删除一个矩形 B)使一个矩行区域变为无效,从而可以重绘

C)使一个矩形区域变为无效,从而释放部分GDI资源

D)擦除一个矩形区域

48. "已知窗口为缺省状态,有如下代码:

HDC hdc = GetDC( hWnd );

HPEN hpen = CreatePen( 1, 1, RGB(255,0,0) );

SelectObject( hdc, hpen );

Ellipse( hdc, 050, 50, 200, 200 );

则这段代码的执行效果是( B )。"

A)绘制1个黑色的椭圆形边框,无填充颜色

B)绘制1个红色的椭圆形边框,无填充颜色

C)绘制1个黑色的椭圆形,填充为黑色,无边框

D)绘制1个红色的椭圆形,填充为红色,无边框

49. "已知有如下代码:

HDC hDC = GetDC(hWnd);

LineTo(hDC,100,100);

则这段代码的执行效果是( A )。"

A)从窗口的左上角至坐标(100,100)绘制1条直线

B)没有绘制任何图形

C)从窗口的任意一点开始至坐标(100,100)绘制1条直线

D)从鼠标在窗口的位置至坐标(100,100)绘制一条直线

50. 以下函数中不受画刷影响的函数是:( C )

A) Rectangle B)Ellipse

C) LineTo D)Polygon

51. 如果要创建一个宋体字体,那么字体描述中哪个属性为“宋体”?( C )

A) lfCharSet B)lfQuality

C) lfFaceName D)lfStrikeOut

52. 在Windows编程约定中,位图句柄为( B )。

A) HGDI B)HBITMAP

C) HDC D)HPEN

53. 下面哪个步骤能实现透明贴图(模板位图为单色的1位位图)?( A )

A)位图和背景像素作异或操作->使用模板位图作与操作->原位图与背景作异或操作

B)使用模板位图作与操作->原位图与背景作异或操作->位图和背景像素作异或操作

C)位图和背景像素作异或操作->原位图与背景作异或操作->使用模板位图作与操作

D)位图与背景作异或操作->位图和背景像素作异或操作->使用模板位图作与操作

54. 在BitBlt函数中进行光栅化处理方式中,哪1个值说明是要进行或运算?( D )A) SRCAND B)SRCCOPY

C) SRCINVERT D)SRCPAINT

55. 动态链接库文件的后缀名为( B )。

A) lib B)dll C)exe D)obj

二.多选题

1. 已知严格按照匈牙利命名法命名的变量m_pTemp,则以下说法正确的是( BC )。

A) 该变量是1个全局变量 B) 该变量是1个类成员变量

C) 该变量是1个指针变量 D) 该变量一定是1个私有变量

2 下列哪种情况下系统可能向窗口发送WM_PAINT消息?( ABCD )

A) 窗口最初创建时

B) 窗口移动后部分区域由不可见变为可见

C) 窗口大小改变后

D) 滚动条滚动后

3.在注册窗口类中,不需要进行的操作是( BC )。

A) 载入图标 B) 确定窗口大小

C) 确定窗口标题 D) 确定窗口类名称

4. 关于PeekMessage和GetMessage的说法正确的是( AB )

A) PeekMessage立即返回

B) GetMessage将会等待消息到来

C) PeekMessage等待消息到来

D) GetMessage立即返回

5. 关于动态菜单,以下说法正确的是( BD )。

A) 函数LoadMenu可以弹出菜单

B) 函数CreatMenu用于建立空菜单

C) 函数DeleteMenu用于删除整个菜单

D) 函数InsertMenu用于在菜单中插入1个菜单项

6. 以下关于Windows的鼠标消息,说法正确的是( BD )。

A) 鼠标的按键消息种类可以从wParam中得到

B) 鼠标的按键消息种类可以从message中得到

C) 鼠标的位置信息可以从wParam中得到

D) 鼠标的位置信息可以从lParam中得到

7. 已知语句SetTimer(NULL,1,100,NULL),则以下说法正确的是( AD )。

A) 设置了一个定时器,该定时器不能正常起作用

B) 设置一个定时器,能够正常起作用

C) 设置了一个定时器,时间间隔为1秒

D) 设置了一个定时器,时间间隔为100毫秒

8. 下列选项中属于Windows GDI资源的是( ABC )。

A) 位图 B) 画笔 C) 字体 D) 窗口

9. 能用于绘制直线的函数为:( AB )

A) LineTo B) P olyline C) Arc D) PolyBezier

10. 画笔的线型包括:( ABD )

A) 实线 B) 点划线 C) 波浪线 D) 虚线

11. 创建画刷的函数有:( ABC )

A) CreateHatchBrush B) CreateSolidBrush

C) CreatePatternBrush D) CreateLogicBrush

12. 在Windows消息机制中,消息系统3大关键要素是( ABC )。

A) 消息队列 B) 消息循环

C) 消息处理函数 D) 消息映射

13.下列哪种情况下系统可能向窗口发送WM_PAINT消息?( BCD )

A)窗口最初创建时

B)窗口移动后部分区域由不可见变为可见

C)窗口大小改变后

D)滚动条滚动后

14.匈牙利表示法的变量一般分为哪几个部分?(ABC)

A)属性(例如g_) B)类型

C)描述 D)后缀

15.下列选项中,可以用Windows句柄标识的有( ABD )。

A)窗口 B)文件 C)消息 D)字体

16.关于Windows句柄,下列说法正确的是( AD )。

A)每个运行着的Windows程序都有对应的Windows实例句柄

B)同1个Windows程序打开多次时,对应同1个实例句柄

C)1个Windows实例句柄只能对应1个窗口句柄

D)1个Windows实例句柄可以对应多个窗口句柄

三、名词解释

1、事件:可能触发计算机程序做出相应反应的刺激

2、句柄:为了区别于普通变量的标识,Windows把这种复杂对象的标识叫做句柄

3、消息:为了描述事件的各种信息(例如,何时何地发生了何种事件等),Windows定义了一个结构,这个结构就叫做”消息”

4、Windows的API函数:由操作系统提供的,用户可以使用的函数就叫做API

5、Windows SDK程序:使用软件开发工具包开发出来的Windows应用程序

6、资源:资源就是一种可供Windows应用程序利用,可单独编辑,并可动态加载的数据

7、图象设备接口(GDI):Windows把用于改变DC属性的操作,即与绘图相关的操作都制作成函数,这些函数的集合就叫做图形设备接口

8、CDC类:在面向对象程序设计思想中,把DC和GDI函数封装到一起形成CDC类

9、回调函数:系统调用用户编写的函数过程叫做“回调”,所以这种被系统调用的函数也叫做“回调函数”

10、无效显示区:在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域

11、控件:Windows设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件

12、类信息表:MFC程序在不同的场合下还经常用到类的其他信息,于是MFC就把这些信息统统都放在映射表项中,并把它叫做类消息表

13、消息循环:while(GetMessage(&msg,NULL,NULL,NULL))

{TranslateMessage(&msg);

DispatchMessage(&msg);}

四.填空题

1、在MFC中,用户可以通过项目工作区窗口的ResourceView视图来查看资源。

2、一个单文档的MFC应用程序框架一般包括5个类:应用程序类、框架窗口类、视图类、

文档类和文档模板类。

3、Windows是一个基于消息的消息驱动系统。

4、项目工作区文件的扩展名是dsw。

5、MessageBox函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返回给

调用者。

6、在通常情况下,视图派生类的成员函数中通过调用GetDocument函数得到当前文档对象

的指针。

7、Windows程序中的消息有窗口消息、命令消息和控件通知消息三种类型。

8、MFC中的集合类包括数组、列表(链表)、映射(顺序可变)。

9、在进行绘图时,画刷用于指定图形的填充样式,画笔用于指定图形的边框样式。

10、用户按下键盘按键并放开的过程中,将产生至少三条消息:WM_KEYDOWN,WM_CHAR,

WM_KEYUP。

11、Windows API中API的中文译文是应用程序接口。

12、MFC的中文译文是微软基础类库。

13、GDI的中文译文是图形设备接口。

14、全局函数AfxGetApp()可以得到CWinApp应用类指针。

15、MFC中可自动重绘的绘图代码一般位于项目的视图类的OnDraw()函数中。

16、在视图中,GetDocument()函数可得到对应的文档对象指针。

17、在文档中,GetFirstviewPosition()和GetNextview()配合可用来遍历所有和文档关联的视图。

18、在MFC中,用CRect类来描述一个矩形区域的大小。

19、在任何时刻设备环境中必须有一支画笔,并且只能有一支。因此在使用自己定义的画笔时,要使用CDC的函数把默认画笔替换为自己定义的画笔,这个函数是SelectObject() 。

20、MFC的缺省的映射模式是MM_TEXT,对应的单位为像素。

21、在视图类中为了访问与视图关联的文档对象中数据,应该先调用GetDocument()函数得到相关联文档对象指针。

22

23、在框架窗口中,GetActiveDocument()函数可得到当前活动文档指针,

GetActiveView()函数可得到当前活动视指针。

24.MFC对话框类的基类是CDialog ,用户自定义对话框类都是从它派生而来。25.Windows系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的手段。

( )被用来从消息队列获取消息,

27.函数TranslateMessage( )用来把键盘消息转换为字符消息,函数DispatchMessage( )用来向系统派送消息。

五、选择填空题(每空1分,共15分)

1、 B 代表窗口客户区的显示设备上下文, C 代表整个窗口的显示设备上下文。

A、CPaintDC

B、CClientDC

C、CWindowDC

D、CMetaFileDC

2、消息循环的处理过程如下:

A 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,

B 把来自键盘的命令翻译成WM_XXX消息命令形式。 E 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows

根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A、GetMessage( )

B、translateMessage( )

C、PostMessage( )

D、SendMessage( )

E、DispatchMessage( )

3、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 C 函数,设置滚动块的位置使用 E 函数,获取滚动块的当前位置使用 F 函数。

A、SetPos

B、SetRange

C、SetScrollRange

D、GetPos

E、SetScrollPos

F、GetScrollPos

G、 GetScrollRange

4、所有的文档类都派生于 C ,所有的视图类都派生于 A 。

A、CView

B、CWindow

C、CDocument

D、CFormView

5、 C 包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,然后由Windows

将它们送入应用程序消息队列中,由程序来处理消息; D 用来与Windows的控制对

象,如列表框、按钮、复选框等进行双向通信。当用户在列表框中改动当前选择或改变了复

选框的状态时发出此类消息。

A、系统消息

B、用户消息

C、输入消息

D、控制消息

6、使用 B 获取的设备上下文在退出时,必须调用ReleaseDC( )释放设备上下文。

A、GetWindowRect( )

B、GetDC( )

C、BeginPaint()

D、GetClientRect( )

六.判断题

1. 所谓的Windows API就是独立于C语言的一套全新的程序设计语言。(×)

2. 在Windows编程约定中,CHAR数据类型和TCHAR数据类型是相同的。(×)

3. 匈牙利命名法是所有程序都必须遵循的一个规则,变量的命名必须按照规则进行。(×)

4. 在Windows编程约定中,代表窗口句柄的数据类型是HWND。(√)

5. 在Windows编程中,使用窗口句柄来操作具体的窗口。(√)

6. 在Windows的消息结构中,键盘的按键字符信息被保存在lParam中。(×)

7. 在Windows消息机制中,WM_TIMER消息表示创建了1个定时器。(×)

8. 所有的Windows程序,其入口函数必须名为WinMain。(×)

9. PostMessage和SendMessage的区别在于前者投递消息到队列,而后者直接调用消息响

应函数。(√)

10. 在Windows编程中,AppendMenu可以在菜单的任意位置插入新的菜单项。(×)

11. 在Windows编程中,菜单可以在资源视图中设计,一旦载入程序,就不能再被更改。(×)

12. 在Windows编程中,键盘按键弹起时,会返回消息WM_KEYDOWN。(×)

13. 在Windows编程中,鼠标消息中不包含任何键盘信息。(×)

14. 在Windows编程中,1个程序中只允许设置一个定时器。(×)

15. 画笔颜色构成是0x00BBGGRR,其中B、G、R分别代表1位16进制数表示蓝、绿和红色

分量的大小。(√)

16. 对于GDI点阵字体和GDI笔划字体,Windows都可以合成粗体、斜体、加底线和加删除

线,而不需要为每种属性另外储存字体。(√)

17. FillRect中指定的画刷是用于画矩形本身和边框,FrameRect中指定的画刷是用于画矩

形的边框。(×)

18. Win32 API可以直接读取所有的图像格式。(×)

19.打开一个项目,只需打开对应的项目工作区文件。(√)20.基于对话框的应用程序,也有文档类和视图类。(×)21.所有的Windows应用程序都是消息驱动的。

(√)

22.COMMAND(菜单消息类型)是更新命令用户接口消息。

(×)

23.删除CPen对象可调用CPen对象的DeleteObject函数。

(×)

24.CBrush是GDI对象。

(√)

25.Windows应用程序的入口也是main函数。(×)七.简答题

1.Windows应用程序的主函数有哪三个主要任务

答注册窗口类、创建应用程序的窗口和建立消息循环。

2.运行程序后单击鼠标右键弹出对话框提示“您按下了鼠标右键”对话框。简要说明设计步骤。

参考答案:

(1)新建基于单文档的应用程序;(2)用类向导映射鼠标右键消息;

(3)在消息函数中添加代码:MessageBox(“您按下了鼠标右键”);

3、.利用AppWizard生成默认的SDI应用程序My时,向导自动生成的哪四个类?及其相

应的功能。

参考答案:

CMainFrame(构建应用程序,显示窗架)

CMyApp(整个应用程序)

CMyDoc(管理数据)

CMyView(显示数据)

4.创建窗口的五个步骤:

参考答案:

1)定义窗口 2)注册窗口 3)创建窗口 4)显示窗口 5)消息循环

5.如何显示和更新窗口?

答:调用函数ShowWindow显示窗口,调用函数UpdateWindows更新窗口。

6.什么是消息循环?

答:在创建了窗口的应用程序中,应用程序将不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列获取消息,这个不断重复的工作过程叫做消息循环。

7.说明Windows应用程序的主函数、窗口函数与Windows系统之间的关系。

答:Windows应用程序的主函数和窗口函数都是系统调用的函数,主函数是在应用程序启动时由系统首先调用的函数,而窗口函数是主函数在消息循环中获得消息并把消息派送给系统之后,由系统调用的用来处理消息的函数。

8.文档类的成员函数UpdateAllViews的作用是什么?

答:通知文档所对应的所有窗口同时进行重绘。

9.MFC应用程序的界面有哪三种方式?

答:(1)单文档界面;(2)多文档界面;(3)基于对话框界面。

10.WinMain()函数的工作。

WinMain()函数是Windows程序的入口点在WinMain中进行注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环

11.非MFC的Windows程序中,在WM_PAINT消息中怎样获得客户区的设备环境句柄。和不是WM_PAINT消息中怎样获得客户区的设备环境句柄。

BeginPaint ----------EndPaint GetDC---------------ReleaseDC(成对出现)

利用GetDC函数获取设备环境句柄

12.句柄的含义。

句柄是一个通常为32位的无符号整数(unsigned int),它代表一个内核对象,是内核对象在应用层的表示。

13.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。

当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同

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

在接收到WM_QUIT消息时返回0

15.Windows中应用程序的输出是怎样进行的。

通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互16.当程序中某个函数改变了数据而需要重新绘制客户区时WM_PAINT不会被自动调用,这时需要怎样间接调用它。

使用InvalidateRect()调用

17.键盘消息处理函数OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags)中的主要参数。

参数UINT nChar指按下按键的虚拟键码;nRepCnt 按键按下的次数; nFlags有没有其他键同时被按下;如shift、ctrl、Alt

18.DC中的SetROP2()的作用。

设定绘图模式

19.扩展名为.rc的文件是什么。

资源文件

20.GDI绘图函数所使用的参数。

GDI绘图函数使用的逻辑坐标

21.当用户按下某个字母键时消息发生的顺序。

WM_KEYDOWN->TranslateMessage()->WM_CHAR

22.常用的客户区鼠标消息有哪些

答WM_LBUTTONDBCLK 双击鼠标左键 WM_LBUTTONDOWN 按下鼠标左键 WM_LBUTTONUP 释放鼠标左键 WM_MOUSEMOVE 移动鼠标 WM_RBUTTONDBCLK 双击鼠标右键 WM_RBUTTONDOWN 按下鼠标右键 WM_RBUTTONUP 释放鼠标右键

23.什么样的窗口才能接收键盘消息

答在Windows中有时会同时打开多个窗口。在这些窗口中只有一个是活动窗口这个窗口一般是屏幕上位置最靠前的窗口它的特征是其标题栏被点亮的而不是灰色的。只有活动窗口才具有输入焦点而Windows中规定只有具有输入焦点的窗口才能接收键盘消息也就是说只有活动窗口才能接收键盘消息。

24.键盘消息分为哪几类哪些键只产生按键消息不产生字符消息

答键盘消息可以分成按键消息和字符消息两类。按键消息分为系统按键消息(WM_KEYDOWN,WM_KEYUP)和非系统按键消息WM_SYSKEYDOWN,WM_SYSKEYUP。字符消息也同样分为系统字符消息WM_CHAR,WM_DEADCHAR和非系统字符消息WM_SYSCHAR,WM_SYSDEADCHAR。值得注意的是系统按键消息只能产生系统字符消息非系统按键消息只能产生非系统的字符消息。在Windows中一些键是只产生按键消息而不产生字符消息的这些键包括Shift键、Ctrl键、功能键、光标移动键、特殊字符键。

25.在程序中如何确定窗口何时具有输入焦点何时失去输入焦点。

答当应用程序的窗口获得输入焦点时会发出WM_SETFOCUS消息而当窗口失去输入焦点时会发出WM_KILLFOCUS消息。如果一个窗口获得了输入焦点便可以用键盘对这个窗口进行操作。

26.在 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

27.在 CreateWindowEx()函数中,各成员所代表的含义是什么?

CreateWindowEx()函数定义如下:

HWND CreateWindowEx(DWORD dwExStyle,

LPCTSTR lpClassName,

LPCTSTR lpWindowName,

DWORD dwStyle,

int x,

int y,

int nWidth,

int nHeight,

HWND hWndParent,

HMENU hMenu,

HINSTANCE hInstance,

LPVOID lpParam);

()函数的功能什么?

UpdateWindow()函数定义如下:

BOOL UpdateWindow(HWND hWnd);

答:更新窗口客户区

29.在 MSG 结构类型中,各个成员所代表的含义是什么?

MSG 结构类型定义如下:

typedef struct tagMSG

{ HWND hwnd;

UINT message;

WPARAM wParam;

LPARAM lParam;

DWORD time;

POINT pt;

} MSG, *PMSG;

()函数的功能什么?

DefWindowProc()函数定义如下:

LRESULT DefWindowProc(HWND hWnd,

UINT Msg,

WPARAM wParam,

LPARAM lParam);

答:函数功能:该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。该函数确保每一个消息得到处理。

31. 讲匈牙利命名惯例的约定,还要记住那些习惯用法?

匈牙利命名惯例的约定有两条:

1. 标识符以一个或者几个小写字母开始,这些小写字母表示标识符的数据型;

2. 大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。

习惯用法:在命名结构变量时,可以用结构名的小写字符序列作为变量名的字首,或者用整个结构名用作结构变量名。

32 消息循环从应用程序消息队列取得窗口消息是怎样送給窗口消息处理程序?

答:通过Dispatch(&msg)将消息发给指定的窗口;

33.主程序WinMain和WndProc是如何联系的?

答:WinProc窗口处理函数是一个回调函数,它是用来处理消息的,是由Wi ndows调用的。在注册窗口类的时候指定了窗口处理函数的入口地址,应用程序获得的消息都交给此入口地址对应的窗口处理函数来处理。

34.解释下面函数申明中的每一个单词

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd ) ;

答:HINSTANCE是数据类型,hInstance称为执行实例代号。hPrevInstance是一个识别字,通过检查hPrevInstance就能够确定此应用程序是否已有过其他实例。lpCmdLine是指向命令序列的指针。nShowCmd指出应用程序的窗口的最初显示方式。

35.窗口类结构中常用的有那几个载入函数?它们的用法如何?

答:LoadIcon函数

HICON WINAPI LoadIcon( // 返回的指向图标的指针,如果失败,返回NULL

HINSTANCE hInstance, // 用户定义图标在哪个实例中, NULL为系统图标

LPCSTR lpIconName // 图标名,也称图标上的标签

);

LoadCursor()函数

HCURSOR WINAPI LoadCursor ( // 返回新载入的光标的句柄

HINSTANCE hInstance, // 载入的光标

LPCTSTR lpCursorName) // 预定义的光标资源名

GetStockObject(WHITE_BRUSH);//窗口背景色

36、有哪两种方法获得屏幕的hDC?

答:利用GetDC()取得窗口hDC;

在处理WM_PAINT消息期间使用BeginPaint()获得hDC;

37、BeginPaint和EndPaint在什么情况下使用,为什么要成对出现?

答:在处理WM_PAINT消息期间使用。

38、InvalidateRect所决定的重绘区和BeginPaint所决定的重绘区有什么区别?InvalidateRect最后一个参数的作用是什么?

答:程序调用BeginPaint时,在大多数情况下,fErase被标志为FALSE(0),这

意味着Windows已经擦除了无效矩形的背景。在调用BeginPaint后PAINTSTRUCT 结构的fErase条款将成为TRUE(非零)。而程序通过调用InvalidateRect函数使客户区中的矩形失效,则该函数的最后一个参数会指示是否擦除背景。如果这个参数为FALSE,则执行InvalidateRect时Windows将不擦除背景,反之,则会擦除背景。

39、GetSystemMetrics函数的用处是什么? GetTextMetrics函数的用处是什么?为了存储它们所获得的信息,预先定义一个结构是什么?

40、什么情况下产生WM_CREATE窗口消息?什么情况下产生WM_PAINT窗口消息?

答:产生WM_CREATE窗口消息:执行CreateWindow函数时

产生WM_PAINT窗口消息:执行UpdateWindow函数时

在使用者移动窗口或显示窗口时,窗口中先前被隐藏的区域重新可见。

使用者改变窗口的大小(如果窗口类别样式有着CS_HREDRAW 和CS_VREDRAW位旗标的设定)。

程序使用ScrollWindow或ScrollDC函数滚动显示区域的一部

分。

程序使用InvalidateRect或InvalidateRgn函数刻意产生

WM_PAINT消息。

Windows擦除覆盖了部分窗口的对话框或消息框。

(可能)菜单下拉出来,然后被释放。

(可能)显示工具提示消息。

41、为什么WM_SIZE窗口消息后必然跟着一个WM_PAINT窗口消息?

答:为我们定义窗口类的时候制定了类风格CS_HREDRAW|CS_VREDRAW

42、如果用户希望立即更新无效区域,可以在调用InvalidateRect之后调用什么函数?答:UpdateWindow

43.按照产生的按键消息分,按键分成那两类?

答:系统按键和非系统按键

44.按键消息有哪四种形式?系统按键消息有什么特点?它在哪里处理?那些不是系统按键消息?

答:四种形式:WM_KEYDOWN WM_SYSKEYDOWN

WM_KEYUP WM_SYSKEYUP

特点:系统按键可能是一个按键也可能是几个按键的组合键,系统按键对Windows系统起作用。

由默认分支DefWindowProc处理系统键盘消息。

WM_KEYDOWN WM_KEYUP

45.数字和字母的虚拟键码是怎样定义的?

答:数字、字母的虚拟键码是用ASCII码定义的。

46.窗口函数中WM_KEYDOWN消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?

答:消息处理分支中的wParam它是判断虚拟键盘的。

而SendMessage中的wParam它是存放鼠标通知码。

47、窗口函数中WM_KEYDOWN消息处理分支中的wParam和SendMessage函数第三个参数wParam有什么不同?

48、鼠标是一种“必须要的选择设备”,如何应用GetSystemMetrics函数确认鼠标是否存在?写出程序代码。

答:fMouse = GetSystemMetrics (SM_MOUSEPRESENT);

八、程序设计题

1、已经在视图类中映射了单击鼠标右键的消息,在该函数中完成绘图,要求以鼠标点击位

置为圆心、半径为100的绿色蓝边的圆。

CEx4_2View::OnRButtonDown(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

CView::OnRButtonDown(nFlags, point);

}

参考答案

CEx4_2View::OnRButtonDown(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

CClientDC dc(this);

CRect r,,+100,+100);

CBrush brush(RGB(0,255,0));

CBrush *pOldBrush;

pOldBrush=dC)SelectObject(&brush);

CPen pen(PS_SOLID,1,RGB(0,0,255));

CPen *pOldPen;

pOldPen=dC)SelectObject(&pen);

dC)Ellipse(r);

dC)SelectObject(pOldBrush);

dC)SelectObject(pOldPen);

CView::OnRButtonDown(nFlags, point);

}

2、为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的和文件的内容

//

class CStudent :public CObject {

public:

CString Num;

CString Name;

CTime Birth;

CString Address;

CString Grade;

DECLARE_SERIAL(CStudent)

virtual void Serialize( CArchive & ar );

};

IMPLEMENT_SERIAL(CStudent ,CObject, 0)

void CStudent:Serialize(CArchive & ar)

{ CObject::Serialize(ar);

if ( () )

{ ar<

}

else

{ ar>>Num>>Name>> Birth >>Address>>Grade;

}

}

3、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的和文件的内容

//文件内容:

class CAddrlist : public CObject {

public:

CString Name;

CString Address;

CString Tel;

CTime Birth;

CAddrlist();

DECLARE_SERIAL(CAddrlist)

virtual void Serialize( CArchive & ar );

};

文件内容:IMPLEMENT_SERIAL(CAddrlist,CObject, 0)

void CAddrlist::Serialize(CArchive & ar)

{ CObject::Serialize(ar);

if ( () )

{ ar<

}

else

{ ar>>Name>>Tel>>Address>>Birth; 1分}

}

4、为学员信息设计一个类CWorker,包含:编号、姓名、出生日期、家庭住址、手机号,并使该类可以实现串行化。请写出可以实现要求的和文件的内容。

//

class CWorker :public CObject {

public:

CString Num;// char Num[10];

CString Name;

CTime Birth;

CString Address;

CString Tel;

DECLARE_SERIAL(CWorker) // 使对象可串行化

virtual void Serialize( CArchive & ar ); //重载串行化函数 CWorker(){。。。。。}

};

//

MPLEMENT_SERIAL(CWorker,CObject,0)

void CWorker::Serialize(CArchive & ar)

{ CObject::Serialize(ar);

i f ( () )

{ar<

}

e lse

{ ar>>Num>>Name>> Birth >>Address>>Tel;

}

Windows程序设计题(含简答题答案)

Windows 程序设计》模拟题 单项选择题 1. 在 VC++ 中,项目文件的扩展名是( B )。 A ) exe B)dsp C ) dsw D ) cpp 2. 在 MFC 中,利用 ClassWizard 不能( D )。 A )建立新类 B )进行消息映射 C )增加类的成员变量 D )插入资源 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送( 3. C )消 息。 4. 5. A ) WM_CHAR B ) WM_HSCROLL C ) W M_VSC ROLL 更新菜单状态的消息是( C A ) WM_COMMAND )。 C ) UPDATE_COMMAND_UI 对于消息队列描述正确的是( A )在Windows 中只有一个消息系统, 据结构,用于临时存储消息。 D ) WM_CHANG E B ) UPDATE D) INVALIDATE 即系统消息队列。 消息队列是一个系统定义的数 B )系统可从消息队列将信息直接发给窗口。 另外,每个正在 Windows 下运行的应用程 序都有自己的消息队列。 C )系统消息队列中的每个消息最终都要被 USER 模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D )以上都正确 6. 在 MFC 中,所有的控件都是( B )类的派生类,都可以作为一个特殊的窗口来处理。 CView B ) CWnd C) 7. 使用 CWindow C) D ) CDialog GetDC () 获取的设备上下文在退出时,必须调用( A )释放设备上下文。 ReleaseDC() B ) delete() DeleteDC () D ) Detach () 8. 希望菜单无效,应该用 CCmdUI 类的( A )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 9.希望菜单前出现一个“V”,应该用 CCmdUI 类的(C )成员函数。 A ) Enable B ) SetRadio C ) SetCheck D ) SetText 10.下面(A )不是MFC 设备环境类CDC 类的派生类。 A ) GDI B ) CPaintDC C) CClientDC D) CWindowDC 11.在MFC 中,所有的文档类都派生于( C ),所有的视图类都派生于( A )。 A) CView B) CWindow C) CDocument D) CFormView

windows程序设计之扫雷游戏经典之作

WIN32模拟WINDOWS XP扫雷 程序 课程设计目的与要求: 本课程设计是计算机科学与技术专业重要的实践性环节之一,是对本程学习后进行的一次全面而综合的练习。本次课程设计的目的与任务主要有: 1.巩固和加深学生对C和C++语言的基本知识的理解与掌握。 2.掌握C和C++语言编程和调试的基本技能 3.运用C和C++语言对程序的简单设计 4.掌握程序设计说明文档的能力与技巧 5.提高与运用C和C++语言解决能实际问题的能力 一、题目描述: 自行分析Windows XP系统自带扫雷游戏,查找规则并对主要功能进行模仿程序实现,对于实现过程中出现的bug进 行调试解决。 二、使用语言: C和C++ 语言 选用C++语言的原因,简而言之主要是因为C++的设计目标,就是要让C++既具有适合于系统程序设计的C语言所具 有的可适应性和高效性,又能在其程序组织结构方面具有像其 他的语言所支持的程序优势。这即是说,C++所提供的抽象机 制能够被应用于那些对效率和可适应性具有极高要求的程序设 计任务之中。

三、编译以及运行环境: 编译环境:Microsoft Visual C++ 6.0 运行环境:Windows XP或其他兼容兼容系统 四、题目分析: 经过对游戏的初步分析,扫雷游戏含有如下规则: 根据输入的信息,执行相应的挖雷,插旗,疑问标记,自动蔓延开挖等。挖雷过程由计时器计时,由一个计数器统计插旗后雷的剩余个数。如果选择了标记功能,那么单机右键会依次对未知点进行插旗,标记,取消插旗与标记。如果点滴到插旗的如果点击到了未插旗子的雷区,如果是雷,则判定游戏失败,之后对雷区的点击进行屏蔽,不予响应。如果是疑问标记则像正常区域对待。如何判断胜利,如果所有的雷都被插旗或者点击后剩余的雷区, 五、程序运行流程简介以及流程图: 点击程序按默认参数进行初始化,输入,表情对鼠标左右键点击进行变化响应,对于雷区内点击进行规律响应,对雷区点击后果进行统计,判断失败与成功,失败或者成功之后,对于雷区内的输入也就是点击进行屏蔽,对菜单游戏级别、重新开始游戏按钮响应。级别选择,重新游戏时时间归零、雷数显示刷新。如此重复规则,直到点击退出。 程序简要流程图:

Windows程序设计题(含简答题答案)

《Windows程序设计》模拟题 一.单项选择题 1、在VC++中,项目文件得扩展名就是(B)。 A)exe????B)dsp C)dsw???D)cpp 2、在MFC中,利用ClassWizard不能(D)。 A)建立新类??B)进行消息映射 C)增加类得成员变量?D)插入资源 3、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR??B)WM_HSCROLL C)W M_VSCROLL???D)WM_CHANGE 4、更新菜单状态得消息就是(C )。 A)WM_MANDB)UPDATE C)UPDATE_MAND_UI D)INVALIDATE 5、对于消息队列描述正确得就是(D) A)在Windows中只有一个消息系统,即系统消息队列。消息队列就是一个系统定义得 数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行得应用程序都有自己得消息队列。 C)系统消息队列中得每个消息最终都要被USER模块传送到应用程序得消息队列中去。 应用程序得消息对列中存储了程序得所有窗口得全部消息. D)以上都正确 6、在MFC中,所有得控件都就是(B)类得派生类,都可以作为一个特殊得窗口来处理。 A)CView??B)CWnd C)C Window???D)CDialog 7、使用GetDC()获取得设备上下文在退出时,必须调用(A)释放设备上下文. A)ReleaseDC()???B)delete() C)D eleteDC()???D)Detach() 8、希望菜单无效,应该用CCmdUI类得(A )成员函数。 ???B)SetRadio A)Enable?? ? C)SetCheck???D)SetText 9、希望菜单前出现一个“√",应该用CCmdUI类得(C)成员函数. A)Enable ???B)SetRadio C)SetCheck??D)SetText 10、下面(A)不就是MFC设备环境类CDC类得派生类. A)GDI ????B)CPaintDC C)CClientDC ??D)CWindowDC 11、在MFC中,所有得文档类都派生于(C),所有得视图类都派生于(A )。 A)CView B)CWindowC)CDocumentD)CFormView 12、采用C++进行绘图时,(B)用于指定图形得填充样式,(A)用于指定图形得边框样式.

windows程序设计学习笔记(一)

Windows程序设计学习笔记 2015年10月4日 一、宽字符wide-character 1、wchar_t: char的双字节(Unicode) 定义:typedef unsigned short wchar_t 示例:wchar_t c=’A’; wchar_t *pw=L”hello!”; //L(代表long)告诉编译器按宽字符保存,即每个字符占两个字节 wchar_t a[]=L”hello!”; 2、宽字符库函数 wcslen( ):计算宽字串符的长度 如:wchar_t *pw=L”hello!”; iLength=wcslen(pw); //字符串长度是6 二、windows头文件类型 1、CHAR和WCHAR typedef char CHAR; //8位 typedef wchar_t WCHAR; //16位变量前面可加wc以说明是一个宽字符 2、字符串指针 (1)8位字符串指针 tpyedef CHAR *PCHAR, *LPCH, *PCH, *NPSTR, *LPSTR, *PSTR; tpyedef CONST CHAR *LPCCH, *PCCH, *LPCSTR, *PCSTR; 前缀N和L表示“near”和“long”,指的是16位windows中两种大小不同的指针,在Win32中near和long指针没有区别 (2)16位字符串指针 tpyedef WCHAR *PWCHAR, *LPWCH, *PWCH, *NWPSTR, *LPWSTR, *PWSTR; tpyedef CONST WCHAR *LPCWCH, *PCWCH, *LPCWSTR, *PCWSTR; 3、WINAPI 定义:#define WINPAI _stdcall 该语句指定了一个调用约定,包括如何生成机器代码以在堆栈中放置函数调用的参数三、Hello程序 /*------------------------------------- HELLO.C--windows下显示Hello,world! 作者:lw 时间:2015年国庆 -------------------------------------*/ #include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT("HelloWin"); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc;

Windows程序设计题(含简答题标准答案)

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe ????B)dsp C)d sw?????D)cpp 2.在MFC中,利用ClassWizard不能(D )。 A)建立新类?????B)进行消息映射 C)增加类的成员变量?D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR ?B)WM_HSCROLL C)WM_VSCROLL???D)WM_CHANGE 4. 更新菜单状态的消息是(C)。 A)WM_COMMANDB)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5.对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程 序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B )类的派生类,都可以作为一个特殊的窗口来处理。 ?B)CWnd A)CView ??? C)C Window ???D)CDialog 7.使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC()???B)delete() C)D eleteDC() ?D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A )成员函数。 A)Enable ???B)SetRadio C)S etCheck ??D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable??B)SetRadio C)SetCheck????D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI??????B)CPaintDC C)C ClientDC ???D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A )。 A)CViewB)CWindowC)CDocument D)CFormView 12. 采用C++进行绘图时,(B )用于指定图形的填充样式,(A)用于指定图形的边框样式。 A)画笔B)画刷C)区域D)位图

windows程序设计

消息驱动运行中发生的各种事件(鼠标键盘输入,各种状态的改变等),以消息的形式通知Windows系统Windows系统接收消息,提交给发生事件的应用程序应用程序的窗口处理函数负责处理响应收到的消息处理完成后继续等待下一个消息API application programming Interface SDK software Development kit 事件是用户对计算机操作的动作或程序中某个对象的状态发生的变化,每个事件对应一个消息,即每个事件发生的效果是产生消息消息是描述事件发生的信息事件驱动程序执行的顺序不是事先规定的,而是由事件的发生来控制在程序执行过程中,当某个对象的状态发生变化,或有外部输入等情况发生,则产生相应的事件当事件产生时,系统会发出特定的消息编写程序时可以对这些消息做出反应,也可以不做出;若要做出反应(即响应消息),则把响应此消息的程序写在与此消息相关联的函数中在程序执行时,一旦产生了一个消息,会调用与此消息相关联的函数窗口是Windows应用程序基本的操作单位,是应用程序与用户之间交互的接口,也是系统管理应用程序的基本单位消息传输事件发生,产生消息消息保存到消息队列分配给应用程序消息队列消息循环提取消息窗口函数响应消息MFC Microsoft foundation class MFC应用程序框架提供了一般应用程序需要的全部面向对象软件组件的集成集合MFC程序结构基于框架窗口的应用程序(早期的MFC)程序运行管理、窗口及数据管理分开两部分,与SDK程序类似基于文档/视图的应用程序单文档应用程序(重点)程序运行管理、窗口管理、交互管理、数据管理分开基于对话框的应用程序程序运行管理、对话框管理分开目前的MFC应用程序都采用文档/视图结构,把原来窗口框架类的工作分开窗口框架类管理窗框视图类(即视窗类)管理数据显示、接收用户输入文档类负责数据管理文档视图架构的思想数据嵌入文档中,利用文档的架构管理文档与视图通信,使数据在视图中显示视图显示数据,并与用户交互视图放入窗口中文档模板类对象管理上述对象协调工作CDocument是负责管理数据的类应用程序中的文档类是这个类的派生类作用数据管理程序员应将用户的实际数据对象内嵌在自己的文档类中需要与自己的视图类通信在程序中实现CDocument的派生类,以便嵌入数据对象,并改写成员函数实现对数据的处理用于派生应用程序的视图类CView 作用处理与用户的交互显示文档类中的数据接收用户输入(例如鼠标操作)通常要改写视图类的成员函数OnDraw或OnPrint,实现数据显示框架自动调用OnDraw函数WM_PAINT消息OnPaint()OnDraw() 菜单及响应利用菜单编辑器修改IDR_MAINFRAME 菜单资源在相应的类中为新菜单项映射消息COMMAND单击或用快捷键选中时生产UPDATE_COMMAND_UI上一级菜单显示前生产用于控制菜单状态编写新菜单项的消息处理函数快捷键在菜单项标题后面加“(&字母)”菜单动态为要添加的菜单项定义一个宏(例如ID_MENU1)用CWnd::GetMenu( )获得指向菜单条的指针(如果在子菜单上添加,应用CMenu::GetSubMenu()获得该菜单的指针)为菜单项手工映射消息处理函数在适当的地方调用InsertMenu或AppendMenu添加菜单项调用CWnd::DrawMenuBar()函数重画菜单动态删除菜单项与上面类似(使用DeleteMenu函数)动态创建菜单项用函数BOOL CreateMenu( );获得新菜单句柄,再用此句柄当作AppendMenu函数的第2个参数(需进行(UTIN)强制类型转换)通常用于创建弹出式菜单的顶级(不需映射消息)快捷菜单建立菜单如果菜单已经存在,且功能齐全,只需确定弹出方式即可也可以另加一个菜单资源,此法可使菜单条中不显示快捷菜单关联类(对于新加菜单)把此菜单资源关联到视图类上选中此菜单资源的情况下打开类向导,选视图类影射消息并编写消息处理函数选择弹出方式可在视图类的WM_CONTEXTMENU消息(鼠标右键单击客户区时产生)处理函数中弹出Windows系统有一个存放消息的队列每个应用程序也有一个消息队列Windows系统先将收到的消息存放在系统队列中,然后再分发到相应的应用程序队列中应用程序则从自身的队列中获取消息并进行处理类的消息响应一个类要响应多种消息对于每一种消息最重要的是知道是哪个消息:消息的标识(ID 身份证)这个消息对应的响应函数是什么(函数的起始地址)解决的办法建立一个结构体数组(消息映射表)一行(一个数组元素)是一个消息的信息每行至少包含消息的标识(ID)指向响应函数的指针消息的响应当收到消息后,根据消息ID在表中查找,找到后调用对应的消息处理函数消息路由当一个类收到消息后,先在自己的消息映射表中搜索,搜索到就执行相应的消息处理函数,然后结束消息处理过程未搜到,则到上一层基类中搜索,依此类推如果都未搜到,则交给系统默认的窗口处理函数去处理消息种类窗口消息命令消息控件通知消息实现消息映射消息映射的要点为每个要响应的消息建立一个处理函数为每个能够响应消息的类建立一个结构类型的数组(消息映射表)并填写这个数组编写每个消息处

Windows程序设计复习资料(完整答案)

一、单项选择题: 1.WinMain()函数的工作。 WinMain()函数是Windows程序的入口点 在WinMain中进行:注册窗体类、建立窗体、显示窗体、更新窗体、建立消息循环2.非MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。 BeginPaint ----------EndPaint GetDC---------------ReleaseDC(成对出现) 利用GetDC()函数获取设备环境句柄 3.句柄的含义。 句柄是一个(通常为32位的)无符号整数(unsigned int),它代表一个内核对象内核对象在应用层的表示 4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。 当窗口客户区有滚动条时客户坐标和逻辑坐标可能不同 5.Windows程序的控制流程。 Windows程序没有固定的控制流程,事件驱动程序控制流程 6.事件驱动、消息驱动的概念。 事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。 消息是事件到达Windows内部后的称呼 7.对话框、控件的作用。 对话框是程序与用户之间进行交互,接收用户输入、并把数据显示出来的一个窗口; 控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上。 8.MFC中怎样处理WM_PAINT消息。 在OnDraw()函数中处理该消息 9.GetMessage()函数在什么情况下返回0,从而导致消息循环终止,程序结束。 在接收到WM_QUIT消息时返回0 10.Windows中,应用程序的输出是怎样进行的。 通过设备描述表DC(Device Context)来进行应用程序与物理设备之间的交互11.MFC中,大多数类的基类都是什么。 CObject类 12.一个MFC应用程序必须有且只能有一个从哪个类派生的全局应用程序对象,此对象在运行时刻控制应用程序中所有其他对象的活动。 CWinApp类 13.每次当窗口客户区需要重新绘制时,应用程序框架怎么处理。 发送WM_PAINT消息,调用OnDraw()函数进行重绘 14.CDC类的作用。 CDC是设备描述表类的基类,除了一般的窗口显示外,还用于基于桌面的全屏幕绘制和非屏幕显示的打印机输出。 15.当程序中某个函数改变了数据而需要重新绘制客户区时,OnDraw()函数不会被自动调

Windows程序设计题

《Windows程序设计》模拟题 一.单项选择题 1. 在VC++中,项目文件的扩展名是(B)。 A)exe B)dsp C)dsw D)cpp 2. 在MFC中,利用ClassWizard不能(D)。 A)建立新类B)进行消息映射 C)增加类的成员变量D)插入资源 3. 当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。 A)WM_CHAR B)WM_HSCROLL C)WM_VSCROLL D)WM_CHANGE 4. 更新菜单状态的消息是( C )。 A)WM_COMMAND B)UPDATE C)UPDATE_COMMAND_UI D)INVALIDATE 5. 对于消息队列描述正确的是( D ) A)在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。 B)系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。 C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D)以上都正确 6. 在MFC中,所有的控件都是(B)类的派生类,都可以作为一个特殊的窗口来处理。 A)CView B)CWnd C)CWindow D)CDialog 7. 使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A)ReleaseDC() B)delete() C)DeleteDC() D)Detach() 8. 希望菜单无效,应该用CCmdUI类的(A)成员函数。 A)Enable B)SetRadio C)SetCheck D)SetText 9. 希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。 A)Enable B)SetRadio C)SetCheck D)SetText 10. 下面(A)不是MFC设备环境类CDC类的派生类。 A)GDI B)CPaintDC C)CClientDC D)CWindowDC 11. 在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A)。 A)CView B)CWindow C)CDocument D)CFormView 12. 采用C++进行绘图时,(B)用于指定图形的填充样式,(A)用于指定图形的边框样式。

Windows编程基础-期末考试试卷头期末-A卷答案

北华航天工业学院2013—2014学年第二学期 Windows编程基础课程考试卷(A、B) 考核形式:开卷闭卷班级:姓名:学号: 一、填空题(每空1分,共10分) 1. 用户可以通过项目工作区窗口的ResourceView 视图来查看资源。 2. 一个单文档的MFC 应用程序框架一般包括5个类:应用程序类、框架窗口类、 视图类、文档类和文档模板类。 3. 改变菜单项文本是使用CCmdUI 类的SetText 成员函数。 4. 滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用SetRange 函数,设置滚动块的位置使用SetScrollPos 函数,获取滚动块的当前位置使用GetScrollPos 函数。 5. 对话框默认标识符前缀是IDD 。 二、选择题(每空2分,共40分) 1.MFC类库中的类按层次关系可知,CStatic的直接父类为(B )。 A、CObject B、CWnd C、CCmdTarget D、CFrameWnd 2. 以下控件中,( C )没有Caption属性。 A、按钮 B、群组框 C、编辑控件 D、静态控件 3. 列表框ClistBox类的成员函数( A )用来向列表框增加列表项,成员函数( C )用来清除列表项所有项目,成员函数( F )用来返回列表框的列表项的总数。 A、AddString B、DeleteString C、ResetContent D、FindString E、GetCurSel F、GetCount 4. 假定AB为一个类,则执行“”AB a(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为( A )。 A、2 B、3 C、4 D、5 5.在类外定义类的成员函数时,应当使用( B )来标识该函数为特定类的成员。A、:B、::C、-> D、this

Windows程序设计(第五版)源代码A(chap08)

chap08-Beeper1 /*----------------------------------------- BEEPER1.C -- Timer Demo Program No. 1 (c) Charles Petzold, 1998 -----------------------------------------*/ #include #define ID_TIMER 1 LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = TEXT ("Beeper1") ; HWND hwnd ; MSG msg ; WNDCLASS wndclass ; wndclass.style = CS_HREDRAW | CS_VREDRAW ; wndclass.lpfnWndProc = WndProc ; wndclass.cbClsExtra = 0 ; wndclass.cbWndExtra = 0 ; wndclass.hInstance = hInstance ; wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ; wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; wndclass.lpszMenuName = NULL ; wndclass.lpszClassName = szAppName ; if (!RegisterClass (&wndclass)) { MessageBox (NULL, TEXT ("Program requires Windows NT!"), szAppName, MB_ICONERROR) ; return 0 ; } hwnd = CreateWindow (szAppName, TEXT ("Beeper1 Timer Demo"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL) ;

Windows程序设计

一单项选择题 试题1 满分值:4.0分状态:已答 应用程序可以使用GDI创建3种类型的图形输出,不包括【】位图 矢量图形 光栅图形 文本 [我的答案] 光栅图形 试题2 满分值:4.0分状态:已答 关于工具栏、菜单和加速键的关系,正确的说法是【】 工具按钮与菜单必须一一对应 工具栏与加速键一一对应 工具按钮不必与菜单一一对应 菜单与加速键一一对应 [我的答案] 工具按钮不必与菜单一一对应 试题3 满分值:4.0分状态:已答 【】函数用于在指定位置输出字符串: Print TextOut Scanf

[我的答案] Print 试题4 满分值:4.0分状态:已答 下列【】不是MFC消息映射机制有关的宏: DECLARE_MESSAGE_MAP BEGIN_MESSAGE_MAP DECLARE_SERIAL END_MESSAGE_MAP [我的答案] DECLARE_SERIAL 试题5 满分值:4.0分状态:已答 在视图类中获得文档类对象指针用函数【】: GetDocument UpdateAllViews OnUpdate SetModifiedFlag [我的答案] GetDocument 试题6 满分值:4.0分状态:已答 能间接调用视图类的OnDraw函数的是【】OnTimer LButtonDown

Invalidate [我的答案] Invalidate 试题7 满分值:4.0分状态:已答实心画刷只需要定义【】 填充样式 填充颜色 填充模式 填充图案 [我的答案] 填充颜色 试题8 满分值:4.0分状态:已答【】设置进度条的当前位置SetRange SetStep SetPos StepIt [我的答案] SetPos 试题9 满分值:4.0分状态:已答常见的菜单类型不包括【】。 自动菜单

《windows程序设计(C语言版)》第1章~开始

开始涛儿软件工作室整理编译 本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application Programming Interface(API)。如在本章稍后所讨论的,这不是写作Windows程序的唯一方法。然而,无论最终您使用什么方式写作程序,了解Windows API都是非常重要的。 正如您可能知道的,Windows 98已成为使用Intel 32位微处理器(例如486和Pentium)的IBM兼容型个人计算机环境上最新的图形操作系统之代表。Windows NT是IBM PC兼容机种以及一些RISC(精简指令集计算机)工作站上使用的Windows工业增强型版本。 使用本书有三个先决条件。首先,您应该从使用者的角度熟悉Windows 98。不要期望可以在不了解Windows使用者接口的情形下开发其应用程序。因此,我建议您在开发程序(或在进行其它工作)时使用执行Windows的机器来跑Windows应用程序。 第二,您应了解C语言。如果要写Windows程序,一开始却不想了解C语言,那不是一个好主意。我建议您在文字控制台环境中,例如在Windows 98 MS-DOS命令提示窗口下提供的环境中学习C语言。Windows程序设计有时包括一些非文字模式程序设计的C语言部分;在这些情况下,我将针对这些问题提供讨论。但大多数情况下,您应非常熟悉该语言,特别是C语言的结构和指针。了解标准C语言执行期链接库的一些相关知识是有帮助的,但不是必要的。 第三,您应该在机器上安装一个适于进行Windows程序设计的32位C语言编译器和开发环境。在本书中,假定您正在使用Microsoft Visual C++ 6.0,该软件包可独立购买,也可作为Visual Studio 6.0软件包的一部分购买。 到此为止,我将不再假设您具有任何图形使用者接口(如Windows)的程序写作经验。 WINDOWS环境 Windows几乎不需要介绍。然而人们很容易忘记Windows给办公室和家庭桌上型计算机所带来的重大改变。Windows在其早期曾经走过一段坎坷的道路,征服桌上型计算机市场的前途一度相当渺茫。 Windows简史

Windows程序设计模拟题

《Windows程序设计》模拟题(补) 一.单项选择题 1、项目文件的扩展名是【1】。 A)exe B)dsp C)dsw D)cpp 2、利用ClassWizard不能【2】。 A)建立新类B)进行消息映射 C)增加类的成员变量D)插入资源 3、下列【3】不是MFC消息映射机制有关的宏。 A)DECLARE_MESSAGE_MAP B)BEGIN_MESSAGE_MAP C)DECLARE_SERIAL D)END_MESSAGE_MAP 4、要使鼠标箭头在按钮上暂停时能显示工具栏按钮提示,必须设置工具栏的风格为【4】。 A)CBRS_TOOLTIPS B)CBRS_FLYBY C)CBRS_NOALIGN D)WS_VISIBLE 5、下面【5】不是GDI对象。 A)CFont B)CPalette C)CClientDC D)CBitmap 6、要将模式对话框在屏幕上显示需要用到【6】。 A)Create B)DoModal C)OnOK D)构造函数 7、类CButton不是下列【7】控件对应的类。 A)命令按钮B)单选按钮 C)复选框D)静态文本框 8、根据对话框的行为性质,对话框可以分为两类【8】 A)对话框资源和对话框类B)模式对话框和非模式对话框 C)对话框资源和对话框模板D)消息对话框和模式对话框 9、所有的控件都是【9】类的派生类,都可以作为一个特殊的窗口来处理。 A)CView B)CWnd C)CWindow D)CDialog 10、使用GetDC()获取的设备上下文在退出时,必须调用【10】释放设备上下文。 A)ReleaseDC() B)delete C)DeleteDC() D)Detach() 11、希望菜单无效,应该用CCmdUI类的【11】成员函数。 A)Enable B)SetRadio C)SetCheck D)SetText 12、当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,水平滑动条发送【12】消息。 A)WM_CHAR B)WM_HSCROLL C)WM_VSCROLL D)WM_CHANGE

Windows程序设计知识点

《Windows程序设计》课程各章知识点 第一章 1.什么是API、SDK(P2)? 2.用Windows API开发应用程序有什么缺点?(P2) 3.什么是句柄?常用的句柄类型有哪些?(P2) 4.Windows系统的基本数据类型和结构类型(P3) 5.事件、消息(用MSG结构体表示)(P4) 6.消息队列、消息循环(P5) 7.从消息队列获取消息的Windows API函数是? 8.队列消息、非队列消息(P5) 9.Windows应用程序的基本结构(WinMain函数和窗口函数) 10.WinMain函数的主要工作 ●定义窗口类型(WNDCLASS结构体) ●注册窗口类型(RegisterClass函数) ●创建窗口(CreateWindow函数) ●显示窗口(ShowWindow函数、UpdateWindow函数) ●执行消息循环(GetMessage、TranslateMessage函数、DispatchMessage函数) 11.问题:DefWndProc函数的作用(P9) 第二章 1.消息映射、消息映射表(结构体数组)。 2.消息映射表的声明和实现方法(宏命令)? 第三章 1.MFC的设计思想(P51开始部分)? 2.构成Windows应用程序(MFC)框架的主要类有哪些? ●CWinApp类、CDocument类、CView类、CFrameWnd类、CDocTemplate类 ●上述类的基类和派生类:CObject类、CCmdTarget类、CWnd类、CWinThread类、 CSingleDocTemplate类、CMultiDocTemplate类 3.理解应用程序类的InitInstance函数的代码(P65) 4.应用程序创建各种对象的顺序(结合P65代码参考图3-11) 5.应用程序各对象之间的关系(图3-13、图3-14、图3-15) 6.类信息表的声明和实现方法(宏命令) 7.类信息表的提取(宏命令) 第四章 1.虚拟图形显示设备和图形设备描述环境(DC)。 2.什么是GDI?常用GDI绘图工具有哪些? 3.CDC类的派生类有哪些?它们之间的区别是什么? 4.OnDraw函数的作用是什么?什么时候被谁调用? 5.掌握用CPen类和CBrush类绘制常用图形。 第五章

windows程序设计实验报告

《Windows程序设计》 实验报告 实验室: S306(308) 学院:计算机科学与技术 专业:计算机科学与技术

目录 实验一、熟悉visual c++的编程环境 (3) 一、实验目的和要求: (3) 二、实验内容、程序清单及运行结果: (3) 1.编辑第一个C++程序 (3) 2. 用AppWizard建立一个MFC Windows应用 (3) 3. 编写简单的计算程序 (4) 运行结果: (4) 三、心得体会: (4) 实验二、对话框的使用 (5) 一、实验目的和要求: (5) 二、实验内容、程序清单及运行结果 (5) 实验步骤: (5) 实验结果: (7) 三、心得体会: (7) 实验三、创建一个进程来运行一个应用程序 (8) 一、实验要求和目的 (8) 二、实验内容、程序清单及运行结果 (8) 实验步骤: (8) 实验结果: (9) 三、实验心得 (9) 实验四、调整线程优先级 (10) 一、实验要求和目的 (10) 二、实验内容、程序清单及运行结果 (10) 实验步骤: (10) 实验结果: (11) 三、实验心得 (11)

实验一、熟悉visual c++的编程环境 一、实验目的和要求: 1.了解和使用VC集成开发环境 2.熟悉VC环境的基本命令和功能键, 3.熟悉常用的功能菜单命令 4.学习使用VC++环境的帮助 5.学习完整的C++程序开发过程 6.理解简单的C++程序结构 7.了解用Visual C++开发Windows MFC应用程序的过程 二、实验内容、程序清单及运行结果: 1.编辑第一个C++程序 源程序代码: //hello world example #include int main() { cout << "hello!"<< endl ; return 0; //正常返回 } 运行结果: 2. 用AppWizard建立一个MFC Windows应用 在窗口中输出"Hello,World!",修改OnDraw函数的定义,在最后一行加一句:pDC->TextOut(50,50,"Hello, World"); 运行结果:

大连海事大学C语言与Windows程序设计道课后题答案

大连海事大学C语言与Windows程序设计6道课后题答案 1.(1)设计具有以下功能的程序:从键盘上输入10个非负整数,统计并输出最大数和最小数,当输入负数时结束输入。 #include void main() { int a, max=-1, min=32767,num=1; cout<<"Please input a number:"<>a; if(a<0) break; //输入负数结束输入 if(a>max) max =a; if(a=0&&num<=10); if(max>=0) cout<<"Max="<

值在程序运行时从键盘输入。 #include void main() { inti,n,sign=1; float sum=0.0; printf("请输入n:"); scanf("%d",&n); for(i=1;i<=n;i+=2) { sum+=sign*(1.0/i); sign=-sign; } printf("\nsum=%f\n",sum); } 2.设计具有以下功能的程序:从键盘输入10个整数,然后排序。(要求:利用函数调用实现并以数组作为函数的参数) 3.编写几何点(二维平面上)的类Point,包括位置属性(二维坐标x,y), 成员函数包括: 点的位置获取函数GetX()和GetY(),

Windows程序设计学习资料

W i n d o w s程序设计

洛阳理工学院实验报告 系别计算机 与信息 工程系 班级B100505 学号B10050527 姓名张勋 课程名称C#面向对象程序设计实验日期11.22 实验名称Windows程序设计成绩 实验目的: 练习windows窗体的使用,掌握多种控件的属性,学会应用窗体属性和事件以及代码两种方式操作。 实验条件: 微机1台、Visual studio 2008 实验内容与结果: 1.控制TextBox控件,使它只能输入数字。当按下退格键时,执行退格操作.并且当数据 将被清空时,提醒终止删除操作,输入数据。 2.有两个组合框里分别为专业和课程,当专业选定时,课程组合框里的课程数组应属于 该专业,通过增加和删除 按钮可以把所选的课程添 加或删除到列表框,并且 在文本框内显示出列表框 内的所有课程的总学分 数。

当没有选课程直接点击添加按钮时: 选课程并添加: 从列表框内删除: 当再次选择“大学物理”时:

当更换专业时: 3.比较numericUpDown1.UpButton()和 numericUpDown1.Value+=numericUpDown1.Increment;的区别,这里把文本框数值的上限设为20,下限设为0,增值为1. 当达到上限时, numericUpDown1.UpButton()执行 正常,而另一句却出现错误,语句 无法执行 添加快捷菜单,在窗口菜单中有大 中小三个菜单项,分别控制着窗口 的大小,单击右键弹出快捷菜单 使快捷菜单的功能与窗口菜单相 同。 窗口菜单操作下:

快捷菜单操作下: 附加窗体的代码:(部分功能在属性中执行了,故在代码中没有设置) https://www.wendangku.net/doc/2f15895309.html,ing System; using System.Collections.Generic; using https://www.wendangku.net/doc/2f15895309.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace p7_4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar >= 48 && e.KeyChar <= 57) ; else if (e.KeyChar == 8) { textBox1.Text.Remove(textBox1.Text.Length - 1); if (textBox1.Text.Length == 1) MessageBox.Show("请输入数据!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); } else e.Handled = true; } private void Form1_Load(object sender, EventArgs e) {

相关文档
相关文档 最新文档