MFC基础知识课件_第1页
MFC基础知识课件_第2页
MFC基础知识课件_第3页
MFC基础知识课件_第4页
MFC基础知识课件_第5页
已阅读5页,还剩142页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MFC基础

指导教师:徐雅静

1

4计算机实习

■一、实习内容

京■二、演示例子

■三、相关知识

电1、对话框程序

大2、控件使用

学3、类使用

4、文件使用

2

一、实习内容

■题目

实现一个基本的学生信息管理系统

3

本科

B生

M硕

4I,一、实习内容D>生

■存储介质:.txt文件(学号唯一。

O

类别姓名学号年龄系别实验室发表文章

B张山B09823电信学院

M测试Y09423电信学院Iab3

大M周正Y09323电信学院Iab2

学D王丹010229电信学院LAB920

4

~实习内容

北■程序框架:1、基于对话框应用程序。

5

实习内容

■程序框架:2、基于控制台的应用程序

际D:\讲义、实要和小学期\C++小学期\2U05\5tudent\Debug\3aa«eKe

M钻

H单

京h帮

l示

a显

e增

邮d编

j删

-

s查

雨q保

l退

t

-士2

B0200128LABI2

生29LAB920

士B01021

大硕i

科V0123324自动化学院LABI

本1

0029120电信工程学院

.

LJ

6

工实习内容

■程序功能:

1.能够显示学生信息

2.能够增加、删除、编辑学生信息

3.能够按照学号或姓名查询学生信息

4.能够分类统计(可选)、排序(可选)

5.能够保存学生信息

7

工实习内容

■评分标准

1、界面6-10分

2、显示、增加、删除、编辑、查询、保存

每项功能6-10分

3、分类统计6-10分

4、排序6-10分

5、其他6-10分

8

二、演示例子

■1、基于对话框的例子

、4

9

二演示例子

2、基于控制台的例子

U-T

10

三、相关知识

1、对话框程序

2、控件使用

标签、图片、编辑框、按钮、组合框、

列表框等。

3、类使用

4、文件使用

U

1、对话框程序

■1.1步骤

1、选择工程类别MFCAppWizard(exe)

2、选择应用程序类别DialogBased

3、选择应用程序外观

4、选择应用程序风格

5、确认相关类名称

6、完成)显不主窗口

12

1、选择工程类别MFCAppWizard(exe)

New凶

北FilesProjects|Workspaces|OtherDocuments|

^ATLCOMAppWizard^Projectname:

-1-a"TlClusterResourceTypeWizai5tepl|

乐莉CustomAppWizard选择MFC

^DatabaseProject

ocation:

^DevStudioAdd-inWizardAppWizard(exe)

皆ExtendedStoredProcWizarol讣实验和小学期\c++小学期\2

邮0ISAPIExtensionWizard

^Makefile

寓MFCActiveXControlwizard

电囱MFCAppWizard(dll)Createnewworkspace

58MFCAppWizard(exe)/rAddtocurrentworkspace

只NewDatabaseWizard

「Dependencyuf:

大T|UtilityProject

3Win32Application

口Win32ConsoleApplication

©Win32Dynamic-LinkLibrary

学国|Win32StaticLibrary

Platforms:

回Win32

3

2、选择应用程序类别DialogBased

A

y

<BackNext>FinishCancel

14

,3、选择应用程序外观

I去掉该复选框

15

,4、选择应用程序风格

16

5、确认相关类名称

17

6、完成夕显示主窗口

Stepl-MicrosoftVisualC++-[StepErc-roD_STEPl.DIALOG(Dialog)]主对话框

^^ditViewInsertprojectBuildLayoutToolsWindowHelp

对话框资Q&暇国百%|MAXVALUE二I«

Dlg司I[Allclassmembers).CStepIDIg三|回▼

源入口工」

国C_JjDialog-mam

®_JIcon

乐国_jVersion

TODO-在这里设置对话控制.

Class视图

Resource视图File视图控件面版

」....广.3

V

田|皮/卓出|固曲|H*」E3国画|熬百

亡0,0iu320x20018

Ready

对话框或控件

-共同特征

1、Resource:外观

2、Class:逻辑实现

3、File:物理存储

19

20

说明

o

■1、CSteplApp类

应用程序类,该类中包含程序的入口函数:

BOOLCSteplApp::lnitlnstance()

CSteplDIgdig;

m__pMainWnd=&dlg;

)

对应的文件Stepl.h和StepLcpp。

21

二^应用程序类调用

说明

■2、CSteplDIg

主对话框类,却省应用程序的主窗口。

〃数据交换的支持函数

voidDoDataExchange(CDataExchange*pDX)

〃对话框初始化函数

BOOLOnlnitDialogQ

〃屏幕刷新函数

voidOnPaint()

对应的文件SteplDIg.h和SteplDIg.cpp。

22

2、控件使用

欧w

»

、»静态图片

静态文本・n为abl---------->编辑框

组框--------o--A按钮—>单选框

复选框•fx回

组合框------画--,列表框

▼皿

g隰

5

列表视图*ED,树形视图

a日

标签&目

n臼

©腐

23

二常用控件资源

二常用控件资源

■什么是控件?

具有外观、属性和行为的元素,也就是说

每一种控件=resource+class。比如编辑框

fCEdit类,按钮fCButton类

25

1、静态控件

■静态控件是用来显示一个字符、边框、

图标、位图等)一般不接受用户的输入,

也不产生任何事件。

26

1、静态控件

欧w

»

、»静态图片

静态文本,n为abl---------->编辑框

组框--------o---A按钮—>单选框

复选框•fx回

组合框-------画-,列表框

▼皿

g隰

5

列表视图*ED,树形视图

a日

标签&目

n臼

©腐

27

4静态图片

-适用范围

一般用于应用程序的logo图片

邮■使用步骤

1、添加图片资源

2、将控件和图片资源关联

28

1)添加图片资源

%Stepl-MicrosoftVisualC++-[Stepl.rc-TOD_5TEP1.DIALOG(Dialog)]

WfileWewInsertprojectguildToolsWindowHelp-lfi»|x|

恤)除Q3[强寇|吗O|聃|MAX_VALUE,点击鼠标右键,

CStepIDIgjJjjAIIclassmembersjJ|^CStepIDIg

北当二选择Insert

a-JSBffiWiBS'ra

S0DialogResourceIncludes...凶EE..

k厩

,Dl

圉IDD_RessourceSymbols...

确定为

-_jiconSaveStepl.rc

乐取消Qab0l

□IDRInsert...

6

EjVersion垃时找…

S3VSJlx回

▼DockingView函

EB囹

tilde

邮a国

囱Propertil

电㈡日

n|£

大£国

Configuration:Stepl-Win32Debug

-0error(s),0v)arning(s)

Resource

]|$|静归^|囤曲H旧「电|稀口|

Createsanewresourceofanytype29

次开始I冷宜⑶同引》|C++小学期|画MicrosoftPowerPoint•[M,」|8Stepl・Mic但oftVisualC..4*总囤⑵”

D添加图片资小T

一二,资源窗口,,

'用于手

,绘图案

选择已

有图案y

选择

30

2)将控件和图片资源关联

1、用鼠标选中“静态图片”,并拖入对话框中

2、点击鼠标右键,弹出属性对话框^

'类型选择

Bitmap

资源ID

1

31

2)将控件和图片资源关联

32

静态文本和组框

-适用范围

一般用于静态的说明文字和边框,

与其他控件共同使用。

■使用步骤

1、将控件拖入对话框

2、设置属性

33

2、编辑框

欧w

»

、»静态图片

静态文本・n为abl---------->编辑框

组框--------o--A按钮—>单选框

复选框•fx回

组合框------画--,列表框

▼皿

g隰

5

列表视图*ED,树形视图

a日

标签&目

n臼

©腐

34

12、编辑框

-适用范围

一般用于可编辑的单行或多行文字。

■编辑框相关知识

resource:资源外观,有唯一的ID

class:CEdit

成员变量:属性

成员函数:设置属性和行为

CEdit的对象:控件变量

35

2、编辑框

如何使用编辑框?

1、将控件拖入对话框

2、设置属性

3、编程对其进行控制

1)设置关联控件变量

2)使用变量调用相关成员函数

36

2、编辑框属性

蓄本僖目

显示*姓名:|vvv

rm

EditProperties

乐GeneralExtendedStV

Aligntext:rHorizontalscroll「Password|7Border

|Left

邮PAutoHScroll「Nohideselection厂Uppercase

rMultieHVerticalscrollFOEMconvertrLowercase

电rNU「AutoVScroll「Wantreturn「d-only

多行文本只读

y

37

$3、编辑框的控制

■1)直接调用成员函数

一〃设置获取编辑框文字

SetWindowText(LPTSTR);

GetWindowText(LPTSTR);

〃编辑框是否变灰

EnableWindow(BOOL);

学〃编辑框是否可见

ShowWindow(int);

38

例1:编辑框使用

>设置编辑框的文字并使其变灰

1、设置控件变量

点击View->ClassWizard

2、在窗口初始化时添加代码

39

人单置母牛变量点击添加变量

V_____________

1、设置控件变量

41

41、设置控件变量

系统自动添加代码如下

京//DialogData

//{{AFX_DATA(CSteplDlg)

enum{IDD=IDD_STEP1_DIALOG};

大CEditm_edit;

学〃}}AFX_DATA

所有和控件映射的变

量均在此

42

数据交换函数中的生成代码

系统自动添加代码如下

voidCSteplDlg::DoDataExchange(CDatj^|^>lpDX)

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CStepTB<gL^

DDX_Control(pDX,IDJEDITl布

//}}AFX_DATA_MAP〔.口

43

2、在窗口初始化时添加代码

BOOLCSteplDlg::OnInitDialog()

dLJ

邮//TODO:Addextrainitializationhere

m_edit.SetWindowText(nwelcomen);

电m_edit.EnableWindow(false);

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

44

有文字,变灰

咫仃_,,________________________________7

45

3、编辑框的控制

■对话框数据交换机制

DDX(DialogDataexchange),用于控

件初始化和获取用户输入的数总。

对话框数据验证DDV(Dialogdata

validation))用大对话框中输入数据的合

法性检验。/\

用户只关心编辑框的内容,不

关心编辑框的属性,可以使用内容

相关变量操作编辑框。

46

3、编辑框的控制

■通常使用UpdateData函数进行数据传递。

UpdateData(true):控件->成员变量

UpdateData(false):成员变量->控件

■进行数据交换时UpdateData函数将设置一

个CDataExchange对象)并调用对话框中

的DoDataExchange重载函数。

47

例2:编辑框使用

>使用DDX和DDV控制编辑框的内容和长度

1、变更控件变量并注释掉OnlnitDialogO

中的原有代码。

2、在OnlnitDialog。中添加新代码

3、运行

48

删除原有变量,

1、变更控件变量增加新的变量

.ZJxJ

选择ValueMemberVariablesAutomationActiveXEventsClassInfo

AddMemberVariableaxCjass...

Membervariablename:Variable...

E:\...\200

乐|m_edit|-

ControlIDs:IeVariable

Cancel

IDC_BUTTON1^^Category:

邮IDC_CHECK1UpdateColumns

Value

IDC_CHECK2

IDC_CHECK3BindAll

Variabletype:

电IDCC0MB01

IDCEDIT1jcStringZ1

IDC__TREE1

IDCANCEL

大IDOK

学Description:CS1validation

A

字符串选择CString

整型选择int、UINT、long等

Cancel

49

1、变更控件变量

乐-1-a

50

4头文件中的生成代码_

//DialogData

//{{AFX_DATA(CSteplDlg)

enum{IDD=IDDSTEP1DIALOG};

CStringm_edit;

//}}AFX_DATA

51

构造函数中的生成代码

CSteplDlg::CSteplDlg(CWnd*pParent/*=NULL*/)

:CDialog(CSteplDlg::IDD,pParent)

{

//{{AFX_DATA_INIT(CSteplDlg)

m_edit=_T("");

//}}AFX_DATA_INIT

//NotethatLoadIcondoesnotrequireasubsequent

DestroylconinWin32

m_hlcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

52

0数据交换函数中的生成代码

voidCSteplDlg::DoDataExchange(CDataExchange*pDX)

市{[映射变量

CDialog::DoDataExchange(pDX);S一

邮//{{AFX_DATA_MAP(CSteplDlg)

DDX_Text(pDX,IDC.EDITI^^e^);

DDV_MaxChars(pDX,m_edit

//}}AFX_DATA_MAP\1控件ID

最大字符数

<__________________________)

53

2、在OnlnitDialog。中添加新代码

BOOLCSteplDlg::OnInitDialog()

乐//TODO:Addextrainitializationhere

1

邮//m_edit.SetWindowText("welcome');

//m_edit.EnableWindow(false);

电medit="123";

UpdateData(false);

returnTRUE;

//returnTRUEunlessyousetthefocustoacontrol

54

3、运行

55

注意

■1、每一个控件只能关联一个控件变量。

■2、Control类型的变量只能在窗口弹出时

使用。可以用来改变编辑框的内容和属

性。

■3、Value类型的变量只能改变编辑框的

内容。

56

3、编辑框控制

■消息机制

控件响应键盘或鼠标的操作,称为事件。

发送消息给控件;控件获取消息后,进行处理。

EN_CHABGE:内容改变

EN_SETFOCUS:获取焦点

EN_MAXTEXT:插入最多字符

■入口

菜单View〉ClassWizard

57

3、编辑框消息

MFCClassWizard控件消息

温馨提示

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

评论

0/150

提交评论