admin管理员组

文章数量:1530975

2024年7月16日发(作者:)

1、 C++是一种计算机语言,而VC++是一种开发环境。

2、 C是一种结构化程序语言,是面向过程的设计语言。C++是面向对象的程序设计语言。

3、 C++与C完全兼容,既可用于结构化程序设计,又可用于面向对象的程序设计。

4、 VC++的全称Visual C++,是集成化的开发环境(IDE: Integrated Development Environment),

是基于面向对象的编程语言,是以C++语言为基础的可视化的编程环境。

5、

在VC++中可以创建DOS环境下运行的程序,也可以创建Windows环境下的运行

的程序,在DOS环境下运行的程序为(控制台)应用程序。

6、 VC++6.0可以创建的项目类型:

项目类型

ATL COM

AppWizard

Win32

Dynamic-Lin

k Library

Custom

AppWizard

Makefile

VC++6.0可以创建的项目类型

说明 项目类型

创建ATL应用程序

创建Win32动态链接库

Database Project

DevStudio

Wizard

Add-in

说明

创建数据库项目

创建自动化宏

创建Internet服务器

或过滤器

创建ActiveX控件程

创建MFC可执行程

创建自定义的ISAPI Extension

AppWizard Wizard

MFC ActiveX

创建Make文件

ControlWizard

创建MFC动态链接库

创建Win32应用程序

MFC AppWizard(exe)

MFC

AppWizard(dl

l)

Win32

Application

Cluster

Resource

Type Wizard

Win32 Console 创建Win32控制台

Application 应用程序

通过它可以创建一

个效用项目,该项目

只作为其他子项目

的一个包容器,减少

子项目的编联时间,

但它本身并不包含

任何文件

说明

创建二进制文件

创建C++源文件

创建光标文件

创建图标文件

创建资源脚本文件

创建SQL脚本文件

通过它可以创建两种项

目类型(Resource DLL

和Cluster

Administrator Extension

Utility Project

DLL)

Win32 Static

创建Win32静态库

Library

Visual C++6.0可以创建的文件类型

文件类型

Active Server Page

Bitmap File

C/C++ Header File

HTML Page

Macro File

Resource Template

Text File

说明

网页制作

创建位图文件

创建C/C++头文件

创建HTML文件

创建宏文件

创建资源模板文件

文本文件

文件类型

Binary File

C++ Source File

Cursor File

Icon File

Resource Script

SQL Script File

6、

VC++工作

界面:项目工作区窗口、文档窗口(编辑窗口)、输出窗口。

1

项目工作区窗口(

Workspace)—以树形结构显示开发项目中的各部分内容,

类似操作系统的资源管理器。(通过单击View/Workspace打开该菜单。)项目工作区

有3个选项卡:

Class View(类视图)、

Resource View(资源视图)、File View(文件视

图)。

 Class View(类视图):将工程中所包含的类、事件、函数及变量等在类视图中

以层次的结构排列,不仅可以使用户快速地找到它们,并且可以直接双击它们,以

便用户在编辑区中操作源代码。单击图标旁的+号时,ClassView展开该类并显示其

类成员。利用ClassView不仅可以浏览应用程序所包含的类以及类中的成员,还可

以快速跳到一个类或成员的定义,步骤如下:

1.选择要查找的定义或声明的符号

2.双击所选的符号名。

要打开关于某一个类声明的头文件,只需双击类名即可。

要想查找某一个变量的参考:

1.将光标定位在该符号处

2.按鼠标右键,弹出快捷菜单,选择Reference(此时应确保已经生成了Browse(浏

览)文件,关于Browse文件的选项,可以在Project -Settings中设置)。

 Resource View(资源视图):在VC中,所有的菜单、图标、光标、图片、对话

框等,都是以资源的形式进行管理的,而管理它们的就是Resource View。用户可以

找到应用程序中的各种资源,并且可以编辑它们的ID号及样式、属性等,包括对话

框的设计、图标、菜单等。

 File View(文件视图):包含用户工程中的各种文件,用户可以查看并编辑。查

看文件;管理文件:包括增加、删除、移动、重命名、拷贝文件等。要增加一个文

件到过程中,可以选择Project->Add to Project->Files菜单,弹出文件对话框,选择

相应文件即可;要从工程中删除一个文件,可打开工程文件夹,选择相应文件,然

后按DEL键。

 Source Files(源文件),Header Files(头文件),Resource Files(资源文件),

External Dependencies(外部依赖文件)

 Source Files 放源文件(.c、.cpp)程序的实现代码全放在这里

 Header Files 放头文件(.h)声明放在这里

 Resource Files 资源文件(.rc)放图标、图片、菜单、文字之类的,主要用来做界

面的东西一般都放这里

 External Dependencies 除上三种以外的,程序编译时用到的文件全放这里

文档窗口(编辑窗口或编辑区,Editor Area)—代码编辑窗口。

输出窗口(Output Panel)——

编译(build/compile Ctrl+F7)以发现源程

序中是否存在语法错误,编译完成后对其进行链接(build/build F7),以建立可执行

文件。编译成计算机可以识别的机器语言目标代码模块(.obj),连接形成最终可以

执行的程序。显示error/waring

 编译程序的进展说明、警告及出错信息。

 查找某个关键字所在的位置的信息。

 在调试运行查看代码时,用户所关心的所有变量的值等信息。

Ctrol+F5或者工具栏中的!按钮,运行程序。Build/Execute *.exe

2

7、

标准的C++程序的基本组成:

预处理命令、函数、语句、变量、输入/输出及注释等几个部分。

① 预处理命令:以“#”开始。有三种预处理命令:宏定义命令、文件包含命令

(#include)及条件编译命令。

② 函数:由函数名和函数体组成。组成C++程序的基本单位是函数。一个C++程

序通常有若干个函数组成,这些函数可以是系统提供的库函数,或用户编写的自定

义函数。在这些中,必须有且仅有一个主函数main,不论主函数位于什么位置,该

程序都是从主函数开始执行的。函数体用一对大括号{}圈起来。

③ 语句:语句是组成程序的基本单元,(顺序语句、选择语句、循环语句等),以

分号结束,最简单的是空语句,它仅包括一个分号。

④ 变量:在C++中,需要将数据存放于内存单元中,而变量就是用来存储和访问

内存单元中数据的标识符。(整型、字符型、浮点型等等)变量名由字母、数字和下

划线3类字符组成,并且第一个字符必须为字母或下划线。区别大小写。

⑤ 输入/输出:接收用户的输入和返回程序运行结果。

⑥ 注释:帮助读者阅读源程序,但不参与程序的运行。// 注释一行;/* */注释一

段。被注释后以绿色字体显示。

⑦ 使用cin或cout进行I/O操作时,在程序中必须嵌入头文件iostream.h,否则编

译时会产生错误。

⑧ cin是标准的输入流。输入运算符">>"在用于输入时,表示将从标准输入流(即

键盘)读取的数值传送给右方指定的变量。

⑨ 输入运算符“>>”允许用户连续输入一连串的数据,它按照输入顺序从键盘上提

取所要求的数据,并存入对应的变量中。cin通常使用空格、回车或Tab键来区分输

入数据。

⑩ cout是标准输出流。输出运算符"<<"用于输出时扩充了功能,表示将右方变量

的值写到标准输出流cout中,即显示在屏幕上。

当我们使用C++ I/O流进行输入输出时,编译器会提供关于每个数值的类型信息,

所以没有必要使用格式修饰符。

8、对话框的定义

对话框是用户与应用程序进行交互的一种重要界面。用于显示和获取用户输入,它

通过一个或多个控件与用户进行交互,是Windows应用程序中最重要的用户界面元

素之一。

对话框没有最大化、最小化按钮,没有菜单栏,不能改变形状大小。

9、对话框的组成

① 对话框模板:对话框模板定义了对话框的特性(比如大小、位置和风格)以及

对话框中每个控件的类型和位置。

② 对话框类:从CDialog类派生的对话框类提供编程接口来管理对话框。

10、对话框的分类

① 模态对话框:在对话框关闭之前,用户无法在应用程序的其他窗口中进行工作

的对话框称为模态对话框。(举例)

② 非模态对话框:在对话框仍然保留在屏幕的同时,用户还可以在应用程序的其

他窗口中进行工作的对话框。(例如:Find和Replace)

11、MFC类库概述

建立MFC库的目的是为了简化Windows应用程序的编制。

3

CObject类——根类(是MFC的抽象基类)

CWnd:窗口类,它是大多数“看得见的东西”的父类(Windows里几乎所

有看得见的东西都是一个窗口,大窗口里有许多小窗口),比如视图CView、

框架窗口CFrameWnd、工具条CToolBar、对话框CDialog、按钮CButton,etc。

一个例外是菜单(CMenu)不是从窗口派生的。该类很大,一开始也不必学,

知道就行了。

CDocument文档,负责内存数据与磁盘的交互。最重要的是

OnOpenDocument(读入),OnSaveDocument(写盘),Serialize(读写)

CView视图类,负责内存数据与用户的交互。包括数据的显示、用户操作

的响应(如菜单的选取、鼠标的响应)。最重要的是OnDraw(重画窗口),通

常用CWnd::Invalidate()来启动它。另外,它通过消息映射表处理菜单、工具条、

快捷键和其他用户消息。你自己的许多功能都要加在里面,你打交道最多的就

是它。

CDC设备文本。无论是显示器还是打印机,都是画图给用户看。这图就抽

象为CDC。CDC与其他GDI(图形设备接口)一起,完成文字和图形、图像

的显示工作。把CDC想象成一张纸,每个窗口都有一个CDC相联系,负责画

窗口。CDC有个常用子类CClientDC(窗口客户区),画图通常通过CClientDC

完成。

CDialog对话框类

CWinApp应用程序类。似于C中的main函数,是程序执行的入口和管理

者,负责程序建立、消灭,主窗口和文档模板的建立。最常用函数InitInstance

():初始化。

CGdiObject及子类,用于向设备文本画图。它们都需要在使用前选进DC。

CPen笔,画线

CBrush刷子,填充

CFont字体,控制文字输出的字体

CBitmap位图

CPalette调色板

CRgn区域,指定一块区域可以用于做特殊处理。

CFile文件。最重要的不外是Open(打开),Read(读入),Write(写)

CString字符串。封装了C中的字符数组,非常实用。

CPoint点,就是(x,y)对

CRect矩形,就是(left,top,right,bottom)

CSize大小,就是(cx,cy)对(宽、高)

12、

命令相关类——CCmdTarget类:CView(视图类)、CWinApp(窗

口应用程序类)、CDocument(文档类)、CWnd(窗口类)、CFrameWnd

(框架类)。

13、创建对话框

用类向导ClassWizard创建对话框类。

4

{

Resource View(资源视图):在VC中,所有的菜单、图标、光标、图片、对

话框等,都是以资源的形式进行管理的,而管理它们的就是Resource View。用户可

以找到应用程序中的各种资源,并且可以编辑它们的ID号及样式、属性等,包括对

话框的设计、图标、菜单等。

}

常用的资源及标识前缀

对话框 IDD_;菜单及快捷键 IDR_;菜单项 IDM_;光标及控件 IDC_;

命令项 ID_; 图标 IDI_; 位图 IDB_; 字符串IDS_或IDP_;

14、类和对象的概念?

如何定义类、对象?

 类是具有相似特征的对象的抽象,例如:

 文件类 所有具体文件对象的抽象

 书类 所有具体书对象的抽象

 学生类 所有具体学生对象的抽象

 对象是一件事物,属性和操作

 属性:状态,特征,组成成员;

 操作:修改属性,访问属性,执行命令。

例如:

 文件具有文件名、长度、修改日期、内容等属性;

 文件可进行复制、更名、打印等操作

 类(class)是一种可由用户定义的、封装有(数据成员)及其(成员函数)

的类型。因此,类是一种数据结构,含有数据及其操作函数的封装体。

class是定义类必须使用的关键字,class后面是用户定义的类的名称。

 类的定义一般格式:

class 类名

{

类定义体

};

 关键字class引出一个类的定义或说明。类名是类的代表。

 类定义体是类的数据成员和函数成员的说明。函数成员用来对这些数据成

员进行操作。

声明类中的数据成员和函数成员与程序其他部分的关系:公有成员

(public),私有成员(private),受保护成员(protected)。

类与对象的区别:

1. 类是抽象的,对象是具体的

2. 类是类型,对象是变量

3. 类是模型,对象是实例

15、类的继承和派生

class Employee

{

protected:

// 保护类的成员可以被其派生类访问

char m_strName[256];

//姓名

5

long m_nID;

//编号

public:

Employee(char* strName, long nID);

char* GetName();

long GetID();

};

//注意分号不要丢

class Manager: public Employee //

声明派生类

// class 派生类名:[继承方式]基类名

{

private:

double m_fTeleAllowance;

public:

Manager(char* strName, long nID, double fTeleAllowance);

double GetTeleAllowance();

void Print() //输出基类和派生类中的属性信息

{

cout<<"姓名:"<

贴:"<

}

//派生类中可以直接调用基类定义的保护成员

};

//注意分号不要丢

继承的概念

继承是C++语言的一种重要机制,该机制自动地为一个类提供来自另一个类的操作

和数据结构,这使得程序员只需在新类中定义已有类中没有的成分来建立新类,从

而使程序易重用、易维护。

引入继承的目的

• 为代码重用提供有效手段,无需修改基类源码,可从基类来裁剪、扩充基类,

满足不断变化的具体应用要求,达到代码重用和易维护、可扩充的目的。

• 继承是实现递增式程序设计的有效途径。

继承方式3种:public、private、protected。

类中的私有成员(private)既不允许外部函数访问,也不允许派生类的成员函数访问。

保护成员(protected)的作用:

为了让派生类的成员函数直接访问基类私有数据成员,C++提供了具有另一种访问

属性的成员---保护成员,即protected成员,它的访问属性是: 外部函数不能访问

保护成员,但派生类中的成员函数可直接访问。

电话补

class 派生类名: 继承方式 基类名

6

{ public:

派生类新增加的成员;

protected:

派生类新增加的成员;

private:

派生类新增加的成员;

};

例子:

#include "iostream.h"

class class1

{

public:

func1()

{

cout<<"11111111n";

}

};

class class2

{

public:

func2()

{

cout<<"22222222n";

}

};

class class3:public class1

{

public:

func3()

{

cout<<"33333333n";

}

};

class class4:public class1,public class2

{

7

public:

func4()

{

cout<<"44444444n";

}

};

class class5:public class4

{

public:

func5()

{

cout<<"55555555n";

}

};

void main()

{

class1 object1;

class2 object2;

class3 object3;

class4 object4;

class5 object5;

1();

2();

1();

3();

1();

2();

4();

1();

2();

4();

5();

}

单一继承 :

派生类上层只有一个基类

多重继承

派生类由多个基类派生而来

多级派生

继承和派生都可以有很多层次,基类和派生类是相对的概念

CDialog类是对话框的基类。

 CObject类是一个根类,是利用MFC编程时所编写的所有类的根;

 CCmdTarget是消息映射类;

 CWnd是窗口类;

8

 CDialog是用于屏幕上显示对话框的基类,对话框类。

16、类的成员函数的定义:

成员函数的定义若放在外面,需在函数名前面加上类名和作用域区分符"::"。成员

函数体在类的外部定义的形式为:

返回类型 类名 :: 函数名(参数表)

{

函数体

}

例: 声明并定义坐标点类。

class point

{ int x ,y;

public:

void setpoint(int,int);

int getx();

int gety();

};

void point::setpoint(int a ,int b)

{

x=a;y=b;

}

int point::getx()

{

return x;

}

int point::gety()

{

return y;

}

注意:在类定义的外部定义成员函数,必须在该函数前面使用"类名::"表达式形式

把它与该类紧密连在一起;否则编译器就会认为该函数是一个与类中的成员函数同

名的普通函数。

17、函数的种类

从用户使用的角度可分为 :

系统函数

又称库函数,是由编译系统提供的,用户可以直接调用这些函数。

库函数包含在不同的头文件中。

用户自定义函数

为了完成特定功能而编写的的函数 。

库函数的含义及作用:

在程序中调用库函数,必须在程序的开头写明头文件。

9

C++的库函数有很多,需要时可查阅有关手册。

常用数学函数( #include "math.h")

函数名

abs

fabs

sqrt

pow

log

log10

rand

功能

求整数的绝对值

求浮点型数据的绝对值

计算平方根

计算任意次方

求自然对数

求以10为底的对数

产生一定区间内的随机

整数

18、从函数的形式角度可分为 :

无参函数

调用函数时不必传递参数 。

有参函数

调用函数时需要传递参数 。

定义无参函数的一般形式是:

类型标识符 函数名( )

{

声明部分

语句

}

操作实例2.6

#include "iostream.h"

void calaadd()

{

}

void caladiff()

10

int m,n,t;

cout<<"请输入两个整数n";//提示输入语句

cin>>m>>n;

t=m+n;

cout<<"两个整数的和是:"<

{

}

void main()

{

}

面向过程的程序设计思想。

操作实例2.7

int calaadd()

{

}

int caladiff()

{

}

void main()

{

int sum,diff;

sum=calaadd();//接收函数返回值

int x,y,z;

cout<<"请输入两个整数n";

cin>>x>>y;

z=x-y;

return z;

int m,n,t;

cout<<"请输入两个整数n";//提示输入语句

cin>>m>>n;

//t=m+n;

return t=m+n;

calaadd();

caladiff();

int x,y,z;

cout<<"请输入两个整数n";

cin>>x>>y;

z=x-y;

cout<<"两个整数的差是:"<

11

}

cout<<"两个整数的和是:"<

diff=caladiff();

cout<<"两个整数的差是:"<

实例分析

1、 无返回值的函数类型是void

2、 有返回值则应写明函数的类型,函数返回值的类型应与函数类型一致,如果不

一致,以函数类型为准。

函数的返回值通过return语句实现。 return语句后面可以是变量,也可以是表达

式,如果是表达式则先计算表达式的值,再把值返回到调用函数中。

使用return语句向调用函数返回数据。返回语句一般放在程序的最后一行,执行到

return语句后,程序就结束了,即使下面还有语句,也不会执行。函数返回值的类

型应与函数类型一致!

19、有参函数的定义

定义有参函数的一般形式是:

类型标识符 函数名(形式参数表列 )

{

声明部分

语句

}

操作实例2.8

int calaadd(int m,int n)

{

}

int caladiff(int x,int y)

{

int t;

//cout<<"请输入两个整数n";//提示输入语句

//cin>>m>>n;

t=m+n;

return t;

int z;

//cout<<"请输入两个整数n";

//cin>>x>>y;

z=x-y;

12

}

return z;

void main()

{

}

形式参数

实际参数

函数的参数传递

形式参数简称形参,被调用函数定义时函数名后面括号中的参数。

实际参数简称实参。调用函数中调用语句函数名后面括号中的参数 。

函数参数传递的方式有两种,一种方式是按值传送,另一种方式是按地址传

送。

20、

函数的声明和函数原型

int a,b,sum,diff;

cin>>a>>b;

sum=calaadd(a,b);

cout<<"两个整数的和是:"<

cin>>a>>b;

diff=caladiff(a,b);

cout<<"两个整数的差是:"<

cout<<"请输入两个整数n";

cout<<"请再输入两个整数n";

c++语言规定被调用函数必须在调用函数之前,否则必须先对被调用函数进行

函数声明的格式是:

声明。

函数类型 函数名 (形式参数表)

一个应用程序往往有很多函数组成,调用关系错综复杂,在程序的开始进行函数声

明是良好的书写习惯。

21、

构造函数与析构函数

构造函数与析构函数是类中的两个特殊的函数。

当需要进行初始化时,要使用构造函数。当类的对象被建立时,构造函数自动

构造函数必须与所在的类同名,可以带参数,也可以不带参数。构造函数不属

执行,从而达到初始化的目的。

13

于任何类型,也没有返回值。

与构造函数功能相反的是析构函数。

析构函数的名字是类名前加一个“~”符号 。

析构函数没有参数,也没有函数类型,没有返回值。

派生类不能继承基类的构造函数和析构函数 。

当派生类的构造函数被执行时,基类相应的构造函数和析构函数也会被执行。

建立派生类对象时,先执行基类的构造函数,再执行派生类的构造函数,析构函

数执行的顺序是相反的。

22、

虚函数

虚函数是在基类中定义,派生类可以对这个函数重新定义。

虚函数定义的关键字是“virtual”。

虚函数的定义位置

在基类中定义,派生类中定义虚函数时,参数的类型和个数必须与基类中的虚

函数完全相同。

23、

指针:

指针是一个地址,指向存储某一个数据的存储地址。

指针变量是一种特殊性质的变量,把地址存放在一个变量中。

定义:

存储类型 数据类型 *指针变量名

存储类型名: 静态存储、栈和自动类型,一般默认值为自动类型 auto。

数据类型:可以是任一基本类型名、派生类型名及自定义类型名,也可以是多级指

针。

指针数据类型

C++语言中一种比较复杂的数据类型, 指针可以指向一个简单的变量,也可以指

向一个对象。对象所在空间的起始地址就是对象的指针,把这个地址赋予一个变量,

这个变量必须为指针类型。

定义指针变量的一般形式为:

用于指针的运算有两个:取地址运算符“&”和取值运算符“*”。

“&”运算符对变量进行操作,含义是取该变量的地址。

“*”运算符对指针类型的变量操作,含义是取该指针所指向对象的内容。

消息对话框就是一种通用、比较简单的对话框。

通常用来显示警告、错误等提示信息 。

基类型 *指针变量名

24、

消息对话框

14

 MessageBox( )函数用于控件、对话框、窗口等一些窗口类中 。

显示消息框的函数MessageBox( )有三个参数,分别显示文本内容、标

题 、按钮类型和图标类型 。

 AfxMessageBox( )函数可以用在任意地方。

25、Windows操作系统支持的程序是由事件的发生来控制的

当事件发生时,产生一个消息。

消息的作用就是通知应用程序发生了一个确定的事件。

应用程序收到消息后,调用事先定义好的消息处理函数做出响应。

WINDOWS系统中有一个消息系统, 负责接收所有的消息。

消息种类大致有三种:窗口消息、命令消息与控件通知消息。

26、一个消息处理函数需要完成以下三方面的工作:

1.在类定义中加入消息处理函数的函数原型(函数声明),且原型一定要以afx_msg

开头。

2.在类的消息映射表中加入相应的消息映射入口项。

3.在类的实现中加入消息处理函数的函数体,作为约定,消息处理函数一般以

On开头。

27、控件

1.单个控件的选取方法

在控件处单击鼠标左键

按Tab键进行选取

2.多个控件的选取方法

按住Shite键,依次单击欲选取的控件

用拖放鼠标的方法在对话框内画一个虚线框

28、UpdateData( )函数的功能是完成控件与之关联的变量之间的数据交换。参

数是“TRUE”则定义为将控件的值赋值给成员变量,如果参数是“FALSE”,功

能是将成员变量的值赋值给控件。

29、主框架窗口和文档窗口

窗口可分为两类:应用程序主框架窗口和文档窗口。

对于单文档应用程序,文档窗口和主框架窗口是一致的,即主框架窗口

就是文档窗口。

对于多文档界面(MDI),文档窗口是主框架窗口的子窗体。多文档界面

在同一时刻可以打开并处理多个文档。

MFC的应用程序框架中有4个基本的类:

CMainFrame :主框架窗口类。

15

CPROGRAMApp :应用程序类,该类是应用程序运行的基础。

CPROGRAMDoc和CPROGRAMView:文档类和视图类,它们是MFC程序设计的重要的两个

类。

30、图形设备接口

Windows操作系统通过图形设备接口(GDI,Graphics Device Interface),负责系

统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字。

GDI的关键元素是设备环境(DC,Device Context),也被称为设备描述表或设备上下

文。

31、Windows包含一些预定义的库存GDI对象:画笔、画刷和字体。

pDC->TextOut的含义

16

本文标签: 函数对话框定义成员程序