VC程序的设计复习资料全

上传人:无*** 文档编号:84825843 上传时间:2022-05-04 格式:DOC 页数:12 大小:162KB
收藏 版权申诉 举报 下载
VC程序的设计复习资料全_第1页
第1页 / 共12页
VC程序的设计复习资料全_第2页
第2页 / 共12页
VC程序的设计复习资料全_第3页
第3页 / 共12页
资源描述:

《VC程序的设计复习资料全》由会员分享,可在线阅读,更多相关《VC程序的设计复习资料全(12页珍藏版)》请在装配图网上搜索。

1、 . . . VC程序设计阿奇丁有和 编著机械工业出版知识点整理DX单选MX多选 TK填空 J D简答 BC编程第1章:C/C+语言概述1、 表达式中不正确的是16i5。DX2、 合法的标识符为:_DK3。DX3、 实现两个字符串连接成一个字符串的函数是:strcat函数。DX4、 有关函数的说确的是函数在调用之前必须前进行声明。DX5、 用new指定分配存大小,正确的写法是float *p; p=new float; DX6、 如果通过函数来实现一种不太复杂的功能,且要求加快执行速度,应选用联函数。DX7、 一个对象使用new运算符创建,必须使用运算符来释放申请其存空间。TK8、 float

2、 &f;含义是定义一个实数变量的引用。TK9、 指针可以用来表示数组元素,已知int a37,下列表示中不正确的是: *5 。DX10、 引用和指针有什么区别?JD引用和指针有三种区别:1.引用必须在声明时初始化,而指针不用。2.对于NULL不能引用,而指针可以指向NULL。3.引用一旦声明,对象不能改变;而指针可以随时改变指向的对象。11、 给对象取一个别名的是:引用。DX12、 通过引用运算符&来定义一个引用。TK13、 关于设置参数默认的叙述,下列正确的是:设置参数默认值时,应该是先设置右边的再设置左边的。DX14、 关于函数重载的说确的是:函数名相同,但参数的个数不同或参数的类型不同。

3、DX15、 下面对重载函数的说法中不正确的是:重载函数中不允许使用默认参数。DX16、 下面关于new 和delete操作符的说法,正确的是:使用new操作符,可以动态分配全局堆中的存资源;若p的类型已由A*强制转换为void *,那么执行语句delete p;时,类A的析构函数不会被调用;实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中。MX17、使p指向动态空间的定义语句,正确的是:int*pnew int30、 int*pnew int。MX18、对于结构体中定义的成员其隐含访问权限为public。DX第2章:C+面向对象程序设计基础1、关于类和对象的

4、说法不正确的是:类体可以对所定义数据成员进行初始化。DX2、关于类和对象的说法不正确的是:对象是对某个类的抽象。DX3、关于成员函数特征的描述中正确的是:成员函数可以重载;成员函数可以设置参数的默认值。MX4、关于成员函数特征的描述中错误的是成员函数一定是联函数。DX5、关于类和对象的说法不正确的是:一个类只能有一个对象。DX6、关于类概念的说法中不正确的是类就是C语言的结构体类型。DX7、关于构造函数的说法不正确的是:构造函数不可以重载。DX8、关于构造函数的说法中不正确的是一个类的构造函数只有一个。DX9、对对象进行初始化的函数是:构造函数。DX10、不是构造函数的特征的是:构造函数必须指

5、定类型说明。DX11、友元函数的作用是:提高程序的运行效率。DX12、一个类的友元函数或友元类可以访问该类的所有成员。DX13、关于友元函数说确的是:友元函数破坏了类的封装性和隐蔽性。DX14、友元方法有何优点和缺点?JD1优点:友元方法可以实现外部函数或类对另一个类中的成员进行操作,提高程序的运行效率。2缺点:使类的封装性变差。15、不是类的成员函数的是:友元函数。DX16、如果AB为一个类,那么执行AB *p=new AB;语句时,共调用该类构造函数的次数为1次。DX17、关于成员函数特征的说法中,正确的是:成员函数可以重载、成员函数可以设置参数的默认值。MX18、在继承机制中,3种继承方

6、式分别是公有继承私有继承、保护继承。TK19、私有继承方式下,基类的私有成员在派生类中不可访问。DX20、公有继承方式下,派生类的成员函数可以直接访问其基类中的:公有成员、保护成员。MX21、设base为基类,derived是base的派生类,且有 base a1,*b1; derived aa1,*bb1;不合乎语法的语句是aa1=a1;。DX22、把一个变量定义为静态变量,应使用static关键字。DX23、关于析构函数的说确是:析构函数是类的成员函数。DX24、有关析构函数的说法中不正确的是:析构函数和构造函数一样可以有参数。DX25、类的析构函数的作用是:删除对象。DX26、类的析构函

7、数是一个对象被 撤销 时自动调用的。DX27、假定MyClass 为一个类,该类的析构函数的是MyClass。DX28、什么样的析构函数不能设计为空?析构函数可以重载吗?JD1若类中用new运算符动态申请存空间,则该类的析构函数一定不能为空。2析构函数不能重载。29、如果类中的成员能在类中或类外都可以直接使用,应加上正确的访问权限是public。DX30、公有继承方式下,派生类的成员函数可以直接访问其基类中的公有成员、保护成员。MX31、表达错误的是公有继承时基类中的private成员在派生类中仍是private的。DX32、关于基类和派生类的说确的是:基类的对象不可赋予派生类的对象。DX33

8、、关于继承的说法中不正确的是:派生类中继承的基类成员的访问权限到派生类保持不变。DX34、如果没有给一个名为Pen的类定义构造函数,则系统为其定义的默认构造函数形式为Pen ,默认的析构函数形式为:Pen 。TK35、如果没给一个名为AB的类定义构造函数,俺么系统自动为其定义的构造函数称为默认构造函数。TK36、有如下类声明:class Foo int bar; ;则Foo类的成员bar是:私有数据成员。DX37、假设一个类的构造函数为 A a=aa; b=aa*bb;,则执行 A x;语句后,x.a和x.b的值分别为:4和20。DX38、在定义对象的同时初始化其成员变量,需要利用构造函数,用

9、于初始化变量的值可以是固定常量,也可以通过初始化列表获得。TK39、如果需要把一个函数void show;定义为一个类Student的友元函数,那么应在类Student的定义中加入一条语句 friend void show。TK40、阅读程序,写出运行结果。JD#include class Base int x; public: Base x=y; cout构造Base n; Base cout析构Basen; ; class Derived : public Base public: Derived :Base, d cout构造Derivedn; Derived cout析构Derived

10、 n; private: Base d; ; void main Derived Ob; 结果为:构造Base构造Base构造Derived析构Derived析构Base析构Base41、阅读程序,写出运行结果。JD#include class Apublic: Acoutconstructor An; Acoutdeconstructor An;class Bpublic: Bcoutconstructor Bn; Bcoutdeconstructor Bn;class C:public A,virtual Bpublic: C:B,Acoutconstructor Cn; Ccoutdec

11、onstructor Cn;void mainC cc;coutmain programe run!n;结果为:constructor Bconstructor Aconstructor Cmain programe run!deconstructor CdeconstructorAdeconstructor B42、阅读程序,写出运行结果。JD#include class Apublic: AcoutConstructor Anendl; AcoutDestructor Anendl; ;class Bpublic: BcoutConstructor Bnendl; BcoutDestruc

12、tor Bnendl; ;class C:public A, public Bpublic: CcoutConstructor Cnendl; CcoutDestructor Cnendl; ;void main C obj;结果为:Constructor AConstructor BConstructor CDestructor CDestructor BDestructor A43、阅读程序,写出运行结果。JD#include class Rprivate: int left; public: Rleft=L;cout An ; Rleft=0;coutBn ; void printcou

13、tleftn ; Rif coutAn ;else coutBn; ; void main R r1,r2; r1.print; r2.print;结果为:AB10 0 BA44、派生类的对象对它的基类中哪个成员是可以访问的?公有继承的公有成员。DX45、关于静态数据成员的特征中,不正确的是:静态数据成员不是所有对象所公有的。DX46、关于静态数据成员的说法中,不正确的是:说明静态数据成员时前边要加修饰符static、静态数据成员不是该类的所有对象所共有的。MX47、如果类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员被允许的是: TM*a;、TN&a;。DX48、在面向对象程序设

14、计中,能作为某个类的数据成员的是:自身类对象的指针、自身类对象的引用、另一个类的对象。MX49、关于基类和派生类的描述中,正确的说法是:派生类是基类的具体化;派生类是基类的组合。MX50、派生类对继承的三种方式是公有继承、私有继承和保护继承。TK51、从基类产生派生类的方法一般分为单继承和多继承两种。TK52、派生类对象建立时,先执行基类的构造函数,然后执行派生类的构造函数。TK53、定义平面直角坐标系上的一个点类CPoint作为基类,派生出一条直线类CLine和一个矩形类CRect,并求出两点间距离和矩形的面积。BC#include #include class CPointprotecte

15、d:doublea,b;public: CPoint a=m;b=n; CPoint ;class Cline:public CPointprivate:doublec,d;public:Cline:CPointc=x2;d=y2;void Distance;void Cline: Distancedouble dis; dis=sqrt*+*;cout两点间距离为:disendl; class CRect:public CPointpublic:CRect:CPointvoid AreacoutThe area is:a*bendl;void mainCline c1;c1.Distance

16、;CRect c2;c2.Area;54、学生和教师数据输入和显示程序,学生数据有编号、班号和成绩,教师数据有编号、职称和部门。要求将编号、输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。BC#includeclass person protected: int num; char name20;public: void input coutnum; coutname; void output cout编号为:numendl; cout为:nameendl; ; class student:public person protecte

17、d: int classnum;floatgrade; public: void input1 cout输入学生数据:endl;input; coutclassnum; coutgrade; void output1 cout输出学生的数据:endl; output; cout班号为:classnumendl; cout成绩为:gradeendl; ; class teacher: public person protected: char n10,m20; public: void input2 cout输入教师的数据:endl; input; coutn; coutm; void outp

18、ut2 cout输出教师的数据:endl; output; cout职称为:nendl; cout部门为:mendl; ; void main student s;s.input1;s.output1;teacher t;t.input2;t.output2; 55、如果把一个类外定义的成员函数指明为联函数,那么必须关键字为: inline。DX56、阅读程序,写出运行结果。JD#include class AA int a; public:AA coutInitualizing AA!n;AA coutDestroying AA!n;class BB int b; AA p; public:

19、 BB coutInitualizing BB!n; BB coutDestroying BB!n;void main BB X;coutEnding main!n;结果为:Initualizing AA!Initualizing BB!Ending main!Destroying BB!Destroying AA!57、定义一个Point类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area。BC#include #define PI 3.1415926class Pointprotected:doublea,b;public: Point a=x;b=y;virtu

20、al void Area=0;class Rectangle:public Pointpublic:Rectangle:Point void Areacout矩形面积为:a*bendl;class Circle:public Pointpublic: Circle:Pointvoid Areacout圆的面积为:PI*a*aendl;void main Rectangle r; Circle c; r.Area; c.Area;58、建立一个数组类ARR,具体要求如下: 1私有数据成员:int n 存放数组元素个数。int a100存放数组元素。2公有成员函数:ARRint x ,int si

21、ze;构造函数,用参数size初始化n,用参数初始化a数组。void delsame;完成将数组a中相同元素删除工作。void show;将数组以每行5个数的形式输出到屏幕上。3在主函数中定义数组int b16;其初值是1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10。定义一个ARR类的对象,用b及数组元素个数初始化该对象,则经删除后a数组的容为1,2,3,4,5,6,7,8,9,10。在主函数中完成对该类的测试。BC#include class ARR private: int n;int a100; public: ARRvoid delsame; void show;

22、;ARR:ARR n=num; forint i=0;i ai=xi void ARR:delsame int i,j; fori=0;i ifforj=i;jaj=aj+1;i-;n-;void ARR:show forint i=0;icoutait;if%5= =0coutn; void main int b16=1,2,2,3,4,4,5,6,6,7,8,8,8,9,10,10 ;ARR a1; a1.delsame; a1.show; 第3章:C+面向对象程序设计进阶1、下列叙述中不正确的是:可以声明一个抽象类的对象。DX2、面向对象程序设计语言具有的主要特征有:封装性;继承性;多态

23、性。MX3、C+源程序中的cin是:预定义的对象。DX4、不可进行运算符重载的是:域运算符。DX5、能被重载的运算符有: = 、 。MX6、不正确的叙述是:虚函数可以是友元函数、虚函数可以是静态成员函数。MX7、哪种函数可以是虚的?析构函数。DX8、关于虚函数的说法中不正确的是:一个基类说明中有纯虚函数,该基类的派生类一定不再是抽象类。DX。9、虚函数的声明中正确的是:class B:virtual public A。DX10、虚函数的描述中不正确的是虚函数是一个static类型的成员函数、虚函数是一个非成员函数、派生类的虚函数与基类的虚函数具有不同的参数个数和类型。MX11、要实现动态联编,

24、必须通过对象指针调用虚函数。DX12、多态性分为编译时的多态性和运行时的多态性。TK13、关于运算符重载函数的返回值类型的说法中不正确的是:可以是void型。DX14、将整型数x*y中的*运算符用友元函数重载应写为operator*。TK15、关于插入运算符的重载,正确的说法是运算符函数的返回值类型是ostream &、运算符函数的运算符函数的两个参数必须有一个是类的对象、第一个参数的类型是ostream &、运算符函数有两个参数。MX16、重载插入运算符,其运算符函数的返回值类型应当是ostream &。TK17、在x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符,

25、叙述正确的是:operator+有一个参数, operator*有两个参数。DX18、有函数模板template QSum return+; 对该函数模板的使用正确是:Sum;、Sum;、Sum;MX19、类模板的使用实际上是将类模版实例化成一个:类。DX20、有一种不能定义对象的类,这样的类只能被继承,称为抽象类。TK21、叙述不正确的是:一个基类说明中有纯虚函数,该基类的派生类一定不再是抽象类。DX22、什么叫抽象类,如何使用抽象类?JD1抽象类是指至少包含一个纯虚函数的类。2不能声明抽象类的对象,抽象类必须通过继承得到派生类后,在派生类中定义了纯虚函数的具体实现,才能获得一个派生类的对象

26、。23、一个类体中,正确的纯虚函数的声明是:virtual void vf=0。DX24、阅读程序,写出运行结果。JD#include class A public: void funccout func in class A endl; ; class B public: virtual void funccout func in class B endl; ; class C:public A, public B public: void funccout func in class C endl; ; void main C c; A& pa=c; B& pb=c; C& pc=c; p

27、a.func; pb.func; pc.func;结果为:func in class Afunc in class Cfunc in class C25、阅读程序,写出运行结果。JD#include class basepublic:void fun1coutbase fun1endl;virtual void fun2coutbase fun2endl;class derived:public basepublic:void fun1coutderived fun1endl;void fun2coutderived fun2endl;void main base *p; derived d;

28、p=&d; p-fun1;p-fun2;结果为:base fun1derived fun226、阅读程序,写出运行结果。JD#include class Basepublic: Base virtual void f1coutf1 of Baseendl; Base ;class Derived:public Basepublic: void f1coutf1 of Derivedendl;void main Base *p; Derived obj; p=&obj;p-f1; 结果为:f1 of Derived27、阅读程序,写出运行结果。JD#include class A protect

29、ed: int x; public: Ax=1000; virtual void p1cout x=xn;p2; virtual void p2cout A:p2endl ; ;class C:public A int z;public: Cz=5000; void p1coutz=zn;p2; virtual void p2cout C:p2endl; ;void main C c; A a,*pa=&a; pa-p1; pa=&c; pa-p1; 结果为:x=1000 A:p2 Z=5000 C:p228、阅读程序,写出运行结果。JD#include class testpublic:vi

30、rtual void fun1cout test fun1 endl;virtual void fun2cout test fun2 endl;void fun3cout test fun3 endl;class ftt:public testpublic:void fun1cout ftt fun1endl;virtual void fun2cout ftt fun2endl;virtual void fun3cout ftt fun3endl;void maintest *pp;ftt q;pp = &q;pp-fun1; pp-fun2;pp-fun3;结果为:ftt fun1ftt f

31、un2test fun329、通过重载运算符*直接实现两个一维数组对应元素的相乘运算。例如,设数组a、b分别为: int a5=1,2,3,4,5; int b5=1,2,3,4,5;相乘后结果为1,4,9,16,25,再通过重载运算符=,实现两个一维数组的对应元素相乘后赋值的运算。BC#include #include string.h class Array private:int v5; public: Arrayfori=0;i5;i+vi=0; Array forint i=0;ivi=*p+; Array operator * Array t1; forint i=0;it1.vi

32、=t2.vi; return t1; Array operator= forint i=0;ivi=t2.vireturn this; void showfor int i=0;icoutvit; ; void mian int a5=1,2,3,4,5; int b5=1,2,3,4,5; Array a1,a2,a3;a3=a1* a2;a3.show;30、定义一个分数类 Franc,数据成员nume:分子,分母:deno,在主函数中实现两个分数对象的输入输出的重载,输出格式如:2/3。BC#include class Franc private: int nume, deno; pub

33、lic:Francfriend istream& operator; friend ostream& operator;friendistream& operator cinf.numef. deno; return input;friendostream& operator cout分数是:endl;coutf.nume/f. denoendl;return output;void mainFranc fr; cinfr; coutfr;31、用来实现编译时多态性的是:虚函数。DX32、关于虚函数的描述中正确的是基类中说明了虚函数后,派生类中将其对应的函数不必说明为虚函数。DX33、能实现从

34、存变量向文件输出的成员函数是:put 、write。MX34、不能实例化为任何对象,只作为基类被其它类继承的类称为。TK35、作为类的成员函数重载一个运算符时,参数表中只有一个参数,则说明该运算符有2个操作数。TK36、给出类模板的语句格式,并说明类模板的使用方法。JD1类模板的语句格式:templateclass 类模板体定义; 2 在类模板定义前和每个外联成员函数模板前都要加template。原来程序中是类名的地方,都应用类名。外部程序定义类模板对象时,要用具体类型参数来替换模板参数。37、用友元函数重载运算符时,遇到 obj1obj2,被C+编译器解释为:operator 。DX38、能

35、体现多态性的是:构造函数重载、运算符重载、虚函数、纯虚函数。MX39、创建一个文件输入流对象fin,同时该对象打开文件Test.txt用于输入,正确的声明语句是ifstream fin;TK40、定义一分数类 Franc,数据成员分子:nume,分母:deno,实现两个分数对象的加法与减法的重载。#include class Franc private: int nume,deno;public: Franc Franc if cerr分母不能为零!endl; exit; else nume=x; deno=y; void outputcout nume/ denoendl;friend Fr

36、anc operator+;friend Franc operator-;Franc operator+ Franc t;t.nume=t1.nume*t2.deno+t2.nume*t1.deno;t.deno=t1.deno*t2.deno; return t; Franc operator- Franc t;t.nume=t1.nume*t2.deno-t2.nume*t1.deno;t.deno=t1.deno*t2.deno; return t; void main Franc t1,t2,t3,t4;cout分数为:;t1.output; cout分数为:;t2.output;t3

37、=t1+t2; cout两分相加为:;t3.output;t4=t1-t2; cout两分相减为:;t4.output; 第4章:对话框1、资源都是由标识符来定义的,正确的规则是标识符不区分大小写。DX2、在资源标识符中,不正确的是:8BIT。DX3、Windows中资源通常用标识符来定义区分,标识符字符的个数不得超过247个。TK4、对话框的基类是CDialog。DX5、利用MFC应用程序向导创建的应用程序有单文档、多文档、基于对话框。MX6、 Windows应用程序的入口函数是WinMain。TK7、能弹出消息对话框来显示信息的函数是MessageBox、AfxMessageBox。MX8

38、、对一个对话框编程一般经过哪几个步骤?JD一般经过添加对话框资源、添加和布局控件、用类向导为对话框派生一个类、添加用户代码等步骤。9、不是通用对话框的是:消息对话框。DX10、用MFC AppWizard 创建单文档应用程序时,工程名为Ex_SDI,不是MFC自动生成的类的是CchildFrame。DX11、体现了Windows编程的特点的是:消息驱动机制 、图形设备接口、基于资源的程序设计。MX12、不是Windows应用程序的特点的是:静态库。DX13、模式对话框和无模式对话框的有何区别?JD它们在对话框的创建和退出的方式上是不同的,在创建时,模式对话框是由系统自动分配存空间,退出时对话框

39、对象自动删除;而无模式对话框则需要用户来指定存以及创建的代码,退出时还需添加代码来删除对话框对象。14、消息驱动机制的含义,基于Windows程序和基于控制台应用程序有何区别?JD1消息驱动机制的含义是在Windows程序过接收消息、分发消息、处理消息来和用户进行交互的过程。2基于Windows程序和基于控制台应用程序之间的最根本区别是控制台应用程序是通过调用系统函数来获得用户输入的,而Windows程序则是通过系统发送的消息来处理用户输入的。第5章:常用控件1、在DDX/DDV的技术中,描述正确的是同一个控件可关联多个变量。 DX2、 表示控件数据交换的是DDX。 DX3、表示控件数据校验的

40、是DDV。DX4、用来实现开与关输入的按钮有单选按钮、复选按钮、按键按钮。MX5、在Windows中所用的按钮是用来实现一种开与关的输入,常见的按钮控件分为按键按钮、单选按钮、复选按钮。TK6、是静态控件的有:组框、静态图片。MX7、不属于静态控件的是:组合框控件。DX8、什么是静态控件?静态控件有哪些?JD1静态控件是用来显示一个字符串、框、矩形、图标、位图或增强的图元文件。它一般不接受用户的输入,也不产生通知消息。2静态控件有静态文本、组框和静态图片3种。9、控件的创建方法有两种:一种是在对话模板中用编辑器指定控件,另一种是程序方式。TK10、Wnd:UpdateData函数只有一个为TR

41、UE或FALSE的参数。当参数为TRUE,数据由控件向关联的成员变量传输。TK11、Wnd:UpdateData函数只有一个为TRUE或FALSE的参数。当参数为FALSE,数据由控件相关联的成员变量向控件传输。TK12、什么是按钮控件?按钮控件有哪些?JDWindows中的按钮是用来实现一种开与关的输入,常见的有三种:按键按钮、单选按钮、复选按钮。13、框架窗口可以分为两类,一类是应用程序主框架窗口,另一类是:文档窗口。DX14、在按钮控件中,常见的消息有: BN_CLICKED 、BN_DOUBLE_CLICKED。MX15、根据控件的使用情况,控件可以分为Windows普通控件、MFC扩

42、展控件、Active控件。TK16、组合框按照其主要风格特征来分,把它分为三类,即简单组合框、下拉式组合框和下拉式列表框。TK17、组合框按照其主要风格特征,把它分为三类,即简单组合框、下拉式组合框、下拉式列表框。TK18、不是组合框的是:复杂组合框。DX19、根据控件的使用情况,控件可以分为Windows普通控件、MFC扩展控件、Active控件。TK20、控件的创建方式有哪些?JD控件的创建方式有两种:1在对话框模板中用编辑器指定控件;2采用编程方式,调用相应控件类的成员函数Create来创建,并在Create函数中指定控件的父窗口指针。21、派生类CEditview的基类是:CView。

43、DX22、列表框控件的MFC类名是CListBox。DX23、在代码中,使用CWnd:UpdateData函数可实现控件与其成员变量之间的数据的传输。TK第6章:框架窗口界面设计1、状态栏用一个indicators数组定义,该数组包含的元素有ID_SEPARATOR、ID_INDICATOR_CAPS、ID_INDICATOR_NUM、ID_INDICATOR_SCRL。MX2、主框架窗口和文档窗口的概念:JD主框架窗口是应用程序直接放置在桌面上的那个窗口,每个应用程序只能有一个主框架窗口。对SDI程序来说,它和主框架窗口是一致的,即主框窗口就是文档窗口;而对于MDI程序,文档窗口是主框架窗口

44、的子窗口。3、菜单项助记符前用什么引导?&。DX4、主框架类CFrameWnd的直接基类为CWnd。TK5、什么是快捷菜单?用什么函数来实现?JD1快捷菜单是一种浮动的弹出式菜单,当用户按下鼠标右键时,就会相应地弹出一个浮动菜单,提供了几个与当前选择容相关的选项。2快捷菜单用TrackPopupMenu 函数来实现。6、实现获取菜单项的函数有:etMenuItemCountconst、GetMenuItemID const。MX7、在Windows应用程序中,菜单的MFC类名是CMenu,编辑框控件的MFC类名CEdit。TK8、框架窗口分为两类,一类是应用程序主框架窗口,另一类是文档窗口。T

45、K9、什么是交互对象的命令更新消息,其作用是什么?JD1用户交互对象是指可由用户的操作而产生命令消息的对象。每个用户交互对象都有一个ID号,在发消息时,该ID号包含在WM_COMMAND消息中。一个命令可有多个交互对象,且它们有相似的处理函数。因此更新项目状态的对象不止一个。2为了使用户交互对更新,MFC的类向导直接映射交互对象的更新命令消息来实现,它自动将用户交互对象的ID号与ON_UPDATE_COMMAND_UI宏相连接并产生处理更新消息的相应函数。第7章:文档和视图1、动态切分窗口时,最大列数不能超过几列?2列。DX2、动态切分窗口时,最大行数不能超过:2行。DX3、静态切分窗口时,最

46、大行数不能超过:16行。DX4、文档模板字串共有几段?七段。DX5、关于文档和视图,叙述正确的是一个文档可对应多个视图。DX6、在文档视图结构中,文档与视图之间的对应关系是:一对多的关系。DX7、视图类Cview的派生类有CformView、 CEditView。MX8、在应用程序框架中,文档代表数据单元,用户可以打开和保存命令进行文档数据操作,视图是框架窗口的子窗口,是用户与文档之间的交互接口。TK9、对单文档应用程序来说,可否有多个文档类型?如何实现? JD可以有多个文档类型。可以直接通过字串资源编辑器进行修改;也可在文档应用程序创建向导的第四步,通过高级选项中的文档模板串页面来指定。10

47、、将单文档应用程序的文档窗口静态分成22个窗格。写出设计步骤。步骤中有关程序代码的部分添加到相应的消息映射函数中BC客户区创建的重载函数OnCreateClientvoid CMainFrame:OnCreateClient答:1创建一个默认的单文档应用程序。2打开MainFrm.h头文件,添加一个保护型切分窗口数据成员。Protected: CsplitterWnd m_wndSplitter;3创建一个新的视图类CdemoView用于静态窗格相关联。4添加CmainFrame类的OnCreateClient函数重载代码: CRect rc; GetClientRect; CSize pan

48、eSizerc.Width/2-16,rc,Height/3-16; m_wndSplitter.CreateStatic; m_wndSplitter.CreateView0,0,RUNTIME_CLASS; m_wndSplitter.CreateView0,1,RUNTIME_CLASS; m_wndSplitter.CreateView1,0,RUNTIME_CLASS; m_wndSplitter.CreateView1,1,RUNTIME_CLASS; return TRUE;5在MainFrm.cpp增加#include DemoView.h头文件。11、创建一个单文档,将鼠标在窗口客户区的位置显示在状态栏上,如图所示。写出设计的步骤。步骤中有关程序代码的部分添加到相应的消息映射函数中BC状态栏数组定义代码static UNIT indicators = ID_SEPARATOR;鼠标移动消息WM_MOUSEMOVE的映射void Cex_SDIMouseView:OnMouseMove答:设计步骤为:1创建一个默认的单文档。2将状态栏indicators数组添加保留一项ID_SEPARATOR,再添加ID_SEPARATOR。3鼠标移动消息映

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!