版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省宁波市咸祥中学2025届高一上数学期末检测模拟试题含解析
- 商务系统相关管理知识培训
- 2025届新疆昌吉市英语高三第一学期期末联考试题含解析
- 江苏省苏州新草桥中学2025届英语高三上期末检测模拟试题含解析
- 2025届湖北省鄂州市华容高级中学高一生物第一学期期末综合测试模拟试题含解析
- 2025届全国100所名校高三生物第一学期期末调研试题含解析
- 2025届四川省眉山市外国语学校数学高三上期末达标检测模拟试题含解析
- 2025届临沧市重点中学英语高三第一学期期末学业质量监测试题含解析
- 浙江省丽水四校2025届高一生物第一学期期末考试模拟试题含解析
- 2025届西藏自治区拉萨市拉萨那曲第二高级中学英语高三第一学期期末复习检测试题含解析
- 河北省沧州市药品零售药店企业药房名单目录
- 《试验设计与统计分析》课程教学大纲
- 高一生物 基因工程的基本操作步骤(第1课时) 基因工程的基本操作程序 教学设计
- 奥运项目介绍课件
- 2020年中国自由贸易试验区发展白皮书课件
- 糖尿病高危人群健康管理课件
- 吕氏春秋卷十一 仲冬纪 忠廉原文及翻译
- 《相遇问题》-完整版PPT
- 沪教牛津版四年级上册小学英语Module 2单元测试题(含听力文件)
- 50430审核员考试试题
- 应急物资储备一览表格模板
评论
0/150
提交评论