Windows程序设计知识点

Windows程序设计知识点
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类绘制常用图形。

第五章

1.掌握CPoint类、CRect类、CSize类及其常用操作。

2.POINT、RECT、SIZE结构体。

3.有哪些群体数据类?

4.如何定义CArray类的对象?

5.CArray类的常用操作?

第六章

1.SDI应用程序和MDI应用程序的概念和区别。

2.如何改变窗口的样式(修改什么类的什么成员函数的什么结构体变量)?

3.如何创建和初始化可拆分窗口的SDI应用程序?

4.带有滚动条的应用程序中文档、页和行的尺寸(大小)。

5.如何创建和初始化带有滚动条的应用程序?

6.什么是文档(逻辑)坐标和视图(设备)坐标?相应的转换函数是什么?

第七章

1.用户区鼠标消息和非用户区鼠标消息。

2.常用的用户区鼠标消息和非用户区鼠标消息。

3.按键的扫描码和虚拟码。

4.一般按键消息有哪些?它们之间的区别。

5.窗口获得输入焦点和失去输入焦点时产生什么消息?

编程:

掌握常用图形的绘制方法

●相关类:CDC类、CPen类、CBrush类的应用、颜色的定义

●相关函数:CView::OnDraw函数、鼠标消息处理函数、CWnd类的InvalidateRect函数和

Invalidate函数等。

第八章

(略)

第九章

1.数据的持久性概念(p159)

2.9.1 CFile类(文件创建/打开、打开方式、定位、读写等基本操作)

3.对象序列化的概念和基本处理机制(p171)

4.理解对象序列化过程(p173图9-10)

5.MFC中要实现对象序列化,该类需要满足的条件(p178)

第十章控件

(了解)

第十一章对话框

1.模态对话框与非模态对话框的区别?(p233)

2.模态对话框的创建和显示

3.DoModal()函数的执行过程

4.什么是数据交换(DDX)和数据校验(DDV)?

5.DoDataExchange和UpdateData两个函数的作用和关系

6.MFC的通用对话框有哪些,它们从那个类派生?

第十二章进程与线程

1.进程和线程的概念(p241)

2.Windows系统中进程和线程的优先级,如何确定线程的优先级?

3.Windows系统的线程种类和它们之间的区别(p243)

4.线程的创建函数是?

5.线程同步的概念(p246)

6.MFC中线程同步的基类是什么?它的派生类有哪些?

7.事件对象、临界段、互斥体、信号量等同步对象的特点和基本使用方法建议在理解概念、原理、基本方法的基础上通过例子消化。

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 下列程序设计方法中,()是一种基于对象的程序设计方法。 A: MFC程序设计B: 使用WindowsAPI编程 C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程 2 MFC程序框架中,最先执行的函数是()。 A: WinMain函数B: CWinApp类的构造函数 C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数 3 CWinApp类中用()成员函数实现了对消息环的封装。 A: InitInstance( ) B: Run() C: OnIdle() D: WndProc() 4 消息的4个参数中,表示消息类型的参数是()。 A: HWND hwnd B: messageID C: wParam D: lParam 5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT 6 MFC消息映射机制中,下列消息映射表 BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView) ON_WM_PAINT() END_MESSAGE_MAP() 把WM_PAINT消息映射到()。 A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。 C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。 7 下列MFC类中,不直接支持消息映射的MFC基类是(), A: CCmdTarget B: CWinAPP C: CWnd D: CMap 8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。 A: CArray B: CList C: CMap D: CPtrList 9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。 A: OnCommand B: OnNotifyt C: OnUpdate D: WindowProc 10 Windows程序中,用于表示通用字符的数据类型是()。 A: char B: unsigned short C: TCHAR D: unsigned char 11 下列数据类型中,表示设备上下文句柄的数据类型是()。 A: HWND B: HDC C: HMENU D: HPEN 12 下列各个窗口类中,表示各种视图类的基类的MFC类是()。 A: CScrollView B: CTextView C: CRichEditView D: CView 13 下列各种窗口对象中,对象最好在栈(Stack)中分配MFC窗口类是()。 A: CToolBar B: CView C: CWnd D: CFrameWnd 14下列各宏命令中,应该放在类实现中以支持序列化特性的宏命令是()。 A: IMPLEMENT_DYNAMIC(class_Name) B: IMPLEMENT_DYNCREATE(class_Name) C: IMPLEMENT_SERIAL(class_Name) D: IMPLEMENT_MESSAGE_MAP() 15 CRuntimeClass类的操作中,用于从类名字符串获得该类CRunTimeClass对象指针的方法为()。

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程序设计案例教程习题解答

《Windows程序设计案例教程》习题解答 第1章 1.1 选择题 https://www.360docs.net/doc/ce11305495.html, Framework是一种( )。 A、编程语言 B、程序运行平台 C、操作系统 D、数据库管理系统 2.用Visual https://www.360docs.net/doc/ce11305495.html,编写的程序被编译成中间语言(MSIL)后,运行时还要再一次被编译,这种编译被称为( )。 A、CLR B、JIT C、GC D、GDI https://www.360docs.net/doc/ce11305495.html,ing namespace的作用是表示( )。 A、引入名字空间 B、使用数据库 C、使用一个文件 D、使用一段程序 4.要使程序运行,需要按( )键。 A、F5 B、Ctrl+F5 C、F10 D、F11 5.C#中的数据类型有( )和( )两种。 A.值类型B.调用类型C.引用类型D.关系类型 6.以下运算符中,()是三目运算符。 A.?:B.――C.=D.<= 7.下列不能为类的成员的是()。 A、属性 B、方法 C、索引器 D、接口 8.下列哪一个不是类的成员的访问修饰符() A、private B、base C、public D、protected 9. 调用构造函数创建对象时,通常使用( )关键字。 A.typeof B.new C.as D.is 10.关键字virtual只能用来修饰类的()成员。 A.字段 B.方法 C.属性 D.常量 11.用()关键字定义的方法,属于整个类而不属于类的某一个具体实例。 A.public B.static C.protected D.private 12.在属性的访问声明中,对属性的读操作用( )关键字标出,表明属性的值是只读的,不能改写。 A.set B.get C.private D.public 13.声明了一个数组Array[13],则Array[3]表示第( )个元素。 A.3 B.4 C.5 D.无法知道 14.在C#中,多继承通过( )来实现 A.属性 B.接口 C.索引器 D.方法 15.采用异常处理格式编写程序的目的在于使程序( )。 A.不会引发异常 B.顺利通过编译 C. 减少异常 D. 在出现异常后能够得到处理 16.窗体的标题条显示的标题由窗体的( )属性决定。 A、BackColor B、Text C、ForeColor D、Opacity 17.关闭窗体需要调用窗体( )方法。 A、Show B、Hide C、Activate D、Close 18.对文本文件写进一行,需要调用StreamWriter实例的()方法。 A.Write B.WriteLine C.Flush D.Close

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()函数不会被自动调

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

大连海事大学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="< 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(), 点的位置设置函数SetX()和SetY(), 点的位置移动函数MoveTo() 点的信息打印函数Display()。 void main() { Point p(100,100); p.Display(); p.MoveTo(200,200); cout<<"after moving…"<

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)用于指定图形的边框样式。

第8章 Windows应用程序设计 习题

第8章Windows应用程序设计 一.选择题 1.要使窗体在运行时,显示在屏幕的中央,应设置窗体的【】属性。 A) WindowState B) StartPosition C) CenterScreen D) CenterParent 2.在C#程序中,文本框控件的【】属性用来设置其是否是只读的。 A) ReadOnly B) Locked C) Lock D) Style 3.要使文本框控件能够显示多行且能自动换行,应设置它的【】属性。 A) MaxLength和Multiline B) Multiline和WordWrap C) PasswordChar和Multiline D) MaxLength和WordWrap 4.在使用RichTextBox控件进行文档编辑时,如果希望知道文档自上次设置该控件的内容后,文本框中的内容是否改变,可使用它的【】属性。 A) Modified B) SelectedText C) Undo D) SaveFile 5.当用户单击窗体上的命令按钮时,会引发命令按钮的【】事件。 A) Click B) Leave C) Move D) Enter 6.要使复选框控件能够显示出三种状态,应首先设置它的【】属性。 A) ThreeState B) Checked C) CheckState D) Indeterminate 7.在Windows应用程序中,如果复选框控件的Checked属性值设置为True,表示【】。 A) 该复选框被选中B) 该复选框不被选中 C) 不显示该复选框的文本信息D) 显示该复选框的文本信息 8.在Windows应用程序中,可以通过以下【】方法使一个窗体成为MDI窗体。 A) 改变窗体的标题信息B) 在工程的选项中设置其为启动窗体 C) 设置窗体的IsMdiContainer属性为True D) 设置窗体的ImeMode属性 9.在Windows应用程序中,若要让窗体MyForm显示为对话框模式窗体,必须【】。 A) 使用MyForm.ShowDialog()方法显示对话框 B) 将MyForm对象的isDialog属性设置为True C) 将MyForm对象的FormBorderStyle属性设置为FixedDialog D) 使用MyForm.Show ()方法显示对话框 10.决定Label控件是否可见的属性是【】。 A) Hide B) Show C) Visible D) Enabled 11.把TextBox控件的【】属性设为True,可使其在运行时接受或显示多行文本。 A) WordWrap B) Multiline C) ScrollBars D) ShowMultiline 12.利用文本框的【】属性,可以实现密码框的功能。 A) Password B) Passwords C) PasswordChar D) PasswordChars 13.如果要为“取消”按钮的文本“Cancel”创建访问键“C”,应将按钮的Text属性设置为【】。 A) &Cancel B) % Cancel C) @ Cancel D) ^ Cancel 14.Windows应用程序中,最常用的输入控件是【】。 A) Label B) TextBox C) Button D) PictureBox 15.若要显示消息框,必须调用MessageBox类的静态方法【】。 A) Show B) ShowDialog C) ShowBox D) ShowMessage 16.PictureBox控件的【】属性可以影响图像的大小及位置关系。 A) Size B) SizeMode C) Mode D) PictureMode

Windows编程复习题

一单选题 1.在Windows编程约定中,应用程序接口的英文缩写是(A)。 A.API B.SDI C.GDI D.MDI 2.在Windows编程约定中,软件开发包的英文缩写是(C)。 A.API B.SDI C.SDK D.MDI 3.在Windows编程约定中,图像设备接口的英文缩写是(C)。 A.API B.SDI C.GDI D.MDI 4.以下对应于unsigned long的数据类型为:(B) A.WORD B.DWORD C.INT D.BYTE 5.下列选项中,不属于匈牙利命名法属性部分的是(D)。 A.g_ B.m_ C.c_ D.d_ 6.如果要严格按照匈牙利命名法命名1个全局窗口句柄,以下变量命名正确的是(A)。 A.g_hWnd B.m_hWnd C.g_pWnd D.m_pWnd 7.下列Windows数据格式中,代表设备句柄的是(B)。 A.HWND B.HDC C.HINSTANCE D.HFONT 8."在一个窗口的正常运行的Windows程序中,把主窗口创建语句做如下改动: hWnd=CreateWindow(NULL,szTitle,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL); 则下列说法正确的是(C)。" B.程序仍然正常运行,与改动前相比没有变化 C.程序出现编译错误 D.程序编译通过,但没有窗口显示 E.程序正常运行,窗口标题变为NULL

9.典型的Windows窗口程序的流程为:(A) A.注册窗口类->创建窗口->显示窗口->更新窗口->消息循环 B.创建窗口->注册窗口类->显示窗口->更新窗口->消息循环 C.创建窗口->注册窗口类->显示窗口->更新窗口->消息循环 D.注册窗口类->创建窗口->更新窗口->显示窗口->消息循环 10.菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为true。(D) A.Visible B.Grayed C.Enable D.Separator 11.在Windows消息机制中,菜单消息类型是:(B) A.WM_PAINT B.WM_COMMAND C.WM_CREATE D.WM_CLOSE 12.在Windows编程中,代表键盘的"↑"键的虚拟键值是(A)。 A.VK_UP B.WM_KEYDOWN C.WM_KEYUP D.VK_DOWN 13.在Windows编程中,响应键盘按键按下消息的Windows消息是(B)。 A.VK_UP B.WM_KEYDOWN C.WM_KEYUP D.VK_DOWN 14.在Windows编程中,按下键盘的"A"键后,返回的Windows消息是(B)。 A.VK_A B.WM_KEYDOWN C.A D.DIK_A 15.在Windows编程中,按下鼠标左键产生的Windows消息是(B)。 A.WM_KEYDOWN B.WM_LBUTTONDOWN C.WM_LEFT D.WM_RBUTTONDOWN 16.在Windows编程中,标准鼠标的按键数是(C)。 A.1 B.2 C.3 D.4 17.Windows编程中,定时器消息是(B) A.WM_TIME B.WM_TIMER C.WM_ON_TIME

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) ;

相关文档
最新文档