版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MFC基礎(chǔ)
指導(dǎo)教師:徐雅靜
1
4計(jì)算機(jī)實(shí)習(xí)
■一、實(shí)習(xí)內(nèi)容
京■二、演示例子
■三、相關(guān)知識(shí)
電1、對(duì)話框程序
大2、控件使用
學(xué)3、類使用
4、文件使用
2
一、實(shí)習(xí)內(nèi)容
■題目
實(shí)現(xiàn)一個(gè)基本的學(xué)生信息管理系統(tǒng)
3
本科
B生
士
生
M碩
士
4I,一、實(shí)習(xí)內(nèi)容D>生
■存儲(chǔ)介質(zhì):.txt文件(學(xué)號(hào)唯一。
O
京
類別姓名學(xué)號(hào)年齡系別實(shí)驗(yàn)室發(fā)表文章
郵
B張山B09823電信學(xué)院
電
M測(cè)試Y09423電信學(xué)院Iab3
大M周正Y09323電信學(xué)院Iab2
學(xué)D王丹010229電信學(xué)院LAB920
4
~實(shí)習(xí)內(nèi)容
北■程序框架:1、基于對(duì)話框應(yīng)用程序。
京
郵
5
實(shí)習(xí)內(nèi)容
■程序框架:2、基于控制臺(tái)的應(yīng)用程序
際D:\講義、實(shí)要和小學(xué)期\C++小學(xué)期\2U05\5tudent\Debug\3aa?eKe
一
函
硅
M鉆
H單
助
京h幫
l示
a顯
加
e增
輯
郵d編
除
j刪
-
找
s查
存
雨q保
出
l退
t
生
-士2
張
三
B0200128LABI2
智
鄭
生29LAB920
士B01021
大碩i
歡
王
生
科V0123324自動(dòng)化學(xué)院LABI
本1
李
誠(chéng)
嘉
0029120電信工程學(xué)院
.
LJ
6
工實(shí)習(xí)內(nèi)容
■程序功能:
1.能夠顯示學(xué)生信息
2.能夠增加、刪除、編輯學(xué)生信息
3.能夠按照學(xué)號(hào)或姓名查詢學(xué)生信息
4.能夠分類統(tǒng)計(jì)(可選)、排序(可選)
5.能夠保存學(xué)生信息
7
工實(shí)習(xí)內(nèi)容
■評(píng)分標(biāo)準(zhǔn)
1、界面6-10分
2、顯示、增加、刪除、編輯、查詢、保存
每項(xiàng)功能6-10分
3、分類統(tǒng)計(jì)6-10分
4、排序6-10分
5、其他6-10分
8
二、演示例子
■1、基于對(duì)話框的例子
、4
樂(lè)
郵
9
二演示例子
2、基于控制臺(tái)的例子
樂(lè)
郵
U-T
大
10
三、相關(guān)知識(shí)
1、對(duì)話框程序
2、控件使用
標(biāo)簽、圖片、編輯框、按鈕、組合框、
列表框等。
3、類使用
4、文件使用
U
1、對(duì)話框程序
■1.1步驟
1、選擇工程類別MFCAppWizard(exe)
2、選擇應(yīng)用程序類別DialogBased
3、選擇應(yīng)用程序外觀
4、選擇應(yīng)用程序風(fēng)格
5、確認(rèn)相關(guān)類名稱
6、完成)顯不主窗口
12
1、選擇工程類別MFCAppWizard(exe)
New兇
北FilesProjects|Workspaces|OtherDocuments|
^ATLCOMAppWizard^Projectname:
-1-a"TlClusterResourceTypeWizai5tepl|
樂(lè)莉CustomAppWizard選擇MFC
^DatabaseProject
ocation:
^DevStudioAdd-inWizardAppWizard(exe)
皆ExtendedStoredProcWizarol訃實(shí)驗(yàn)和小學(xué)期\c++小學(xué)期\2
郵0ISAPIExtensionWizard
^Makefile
寓MFCActiveXControlwizard
電囪MFCAppWizard(dll)Createnewworkspace
58MFCAppWizard(exe)/rAddtocurrentworkspace
只NewDatabaseWizard
「Dependencyuf:
大T|UtilityProject
3Win32Application
口Win32ConsoleApplication
?Win32Dynamic-LinkLibrary
學(xué)國(guó)|Win32StaticLibrary
Platforms:
回Win32
3
2、選擇應(yīng)用程序類別DialogBased
A
y
<BackNext>FinishCancel
14
,3、選擇應(yīng)用程序外觀
I去掉該復(fù)選框
北
樂(lè)
郵
電
大
學(xué)
15
,4、選擇應(yīng)用程序風(fēng)格
北
郵
電
大
學(xué)
16
5、確認(rèn)相關(guān)類名稱
北
樂(lè)
郵
電
大
學(xué)
17
6、完成夕顯示主窗口
Stepl-MicrosoftVisualC++-[StepErc-roD_STEPl.DIALOG(Dialog)]主對(duì)話框
^^ditViewInsertprojectBuildLayoutToolsWindowHelp
對(duì)話框資Q&暇國(guó)百%|MAXVALUE二I?
Dlg司I[Allclassmembers).CStepIDIg三|回▼
源入口工」
國(guó)C_JjDialog-mam
?_JIcon
樂(lè)國(guó)_jVersion
郵
TODO-在這里設(shè)置對(duì)話控制.
Class視圖
學(xué)
Resource視圖File視圖控件面版
」....廣.3
V
田|皮/卓出|固曲|H*」E3國(guó)畫(huà)|熬百
亡0,0iu320x20018
Ready
對(duì)話框或控件
-共同特征
1、Resource:外觀
2、Class:邏輯實(shí)現(xiàn)
3、File:物理存儲(chǔ)
19
20
說(shuō)明
o
■1、CSteplApp類
應(yīng)用程序類,該類中包含程序的入口函數(shù):
BOOLCSteplApp::lnitlnstance()
CSteplDIgdig;
m__pMainWnd=&dlg;
)
對(duì)應(yīng)的文件Stepl.h和StepLcpp。
21
二^應(yīng)用程序類調(diào)用
說(shuō)明
■2、CSteplDIg
主對(duì)話框類,卻省應(yīng)用程序的主窗口。
〃數(shù)據(jù)交換的支持函數(shù)
voidDoDataExchange(CDataExchange*pDX)
〃對(duì)話框初始化函數(shù)
BOOLOnlnitDialogQ
〃屏幕刷新函數(shù)
voidOnPaint()
對(duì)應(yīng)的文件SteplDIg.h和SteplDIg.cpp。
22
2、控件使用
歐w
?
、?靜態(tài)圖片
靜態(tài)文本?n為abl---------->編輯框
組框--------o--A按鈕—>單選框
復(fù)選框?fx回
國(guó)
甌
組合框------畫(huà)--,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹(shù)形視圖
a日
標(biāo)簽&目
n臼
?腐
23
二常用控件資源
北
京
郵
電
大
學(xué)
二常用控件資源
■什么是控件?
具有外觀、屬性和行為的元素,也就是說(shuō)
每一種控件=resource+class。比如編輯框
fCEdit類,按鈕fCButton類
25
1、靜態(tài)控件
■靜態(tài)控件是用來(lái)顯示一個(gè)字符、邊框、
圖標(biāo)、位圖等)一般不接受用戶的輸入,
也不產(chǎn)生任何事件。
26
1、靜態(tài)控件
歐w
?
、?靜態(tài)圖片
靜態(tài)文本,n為abl---------->編輯框
組框--------o---A按鈕—>單選框
復(fù)選框?fx回
國(guó)
甌
組合框-------畫(huà)-,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹(shù)形視圖
a日
標(biāo)簽&目
n臼
?腐
27
4靜態(tài)圖片
-適用范圍
一般用于應(yīng)用程序的logo圖片
郵■使用步驟
1、添加圖片資源
2、將控件和圖片資源關(guān)聯(lián)
28
1)添加圖片資源
%Stepl-MicrosoftVisualC++-[Stepl.rc-TOD_5TEP1.DIALOG(Dialog)]
WfileWewInsertprojectguildToolsWindowHelp-lfi?|x|
恤)除Q3[強(qiáng)寇|嗎O|聃|MAX_VALUE,點(diǎn)擊鼠標(biāo)右鍵,
CStepIDIgjJjjAIIclassmembersjJ|^CStepIDIg
北當(dāng)二選擇Insert
a-JSBffiWiBS'ra
S0DialogResourceIncludes...兇EE..
k廄
,Dl
圉IDD_RessourceSymbols...
確定為
-_jiconSaveStepl.rc
樂(lè)取消Qab0l
□IDRInsert...
6
EjVersion垃時(shí)找…
S3VSJlx回
▼DockingView函
EB囹
tilde
郵a國(guó)
囪Propertil
室
囹
除
電㈡日
獨(dú)
國(guó)
n|£
大£國(guó)
Configuration:Stepl-Win32Debug
-0error(s),0v)arning(s)
Resource
]|$|靜歸^|囤曲H舊「電|稀口|
Createsanewresourceofanytype29
次開(kāi)始I冷宜⑶同引》|C++小學(xué)期|畫(huà)MicrosoftPowerPoint?[M,」|8Stepl?Mic但oftVisualC..4*總囤⑵”
D添加圖片資小T
一二,資源窗口,,
'用于手
,繪圖案
選擇已
有圖案y
選擇
30
2)將控件和圖片資源關(guān)聯(lián)
1、用鼠標(biāo)選中“靜態(tài)圖片”,并拖入對(duì)話框中
2、點(diǎn)擊鼠標(biāo)右鍵,彈出屬性對(duì)話框^
'類型選擇
Bitmap
資源ID
1
31
2)將控件和圖片資源關(guān)聯(lián)
北
京
郵
電
大
32
靜態(tài)文本和組框
-適用范圍
一般用于靜態(tài)的說(shuō)明文字和邊框,
與其他控件共同使用。
■使用步驟
1、將控件拖入對(duì)話框
2、設(shè)置屬性
33
2、編輯框
歐w
?
、?靜態(tài)圖片
靜態(tài)文本?n為abl---------->編輯框
組框--------o--A按鈕—>單選框
復(fù)選框?fx回
國(guó)
甌
組合框------畫(huà)--,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹(shù)形視圖
a日
標(biāo)簽&目
n臼
?腐
34
12、編輯框
-適用范圍
一般用于可編輯的單行或多行文字。
■編輯框相關(guān)知識(shí)
resource:資源外觀,有唯一的ID
class:CEdit
成員變量:屬性
成員函數(shù):設(shè)置屬性和行為
CEdit的對(duì)象:控件變量
35
2、編輯框
如何使用編輯框?
1、將控件拖入對(duì)話框
2、設(shè)置屬性
3、編程對(duì)其進(jìn)行控制
1)設(shè)置關(guān)聯(lián)控件變量
2)使用變量調(diào)用相關(guān)成員函數(shù)
36
2、編輯框?qū)傩?/p>
蓄本僖目
顯示*姓名:|vvv
北
rm
EditProperties
樂(lè)GeneralExtendedStV
Aligntext:rHorizontalscroll「Password|7Border
|Left
郵PAutoHScroll「Nohideselection廠Uppercase
rMultieHVerticalscrollFOEMconvertrLowercase
電rNU「AutoVScroll「Wantreturn「d-only
多行文本只讀
y
37
$3、編輯框的控制
■1)直接調(diào)用成員函數(shù)
一〃設(shè)置獲取編輯框文字
SetWindowText(LPTSTR);
GetWindowText(LPTSTR);
〃編輯框是否變灰
EnableWindow(BOOL);
學(xué)〃編輯框是否可見(jiàn)
ShowWindow(int);
38
例1:編輯框使用
>設(shè)置編輯框的文字并使其變灰
1、設(shè)置控件變量
點(diǎn)擊View->ClassWizard
2、在窗口初始化時(shí)添加代碼
39
人單置母牛變量點(diǎn)擊添加變量
V_____________
北
樂(lè)
郵
電
大
學(xué)
1、設(shè)置控件變量
北
樂(lè)
郵
電
大
學(xué)
41
41、設(shè)置控件變量
系統(tǒng)自動(dòng)添加代碼如下
京//DialogData
//{{AFX_DATA(CSteplDlg)
enum{IDD=IDD_STEP1_DIALOG};
大CEditm_edit;
學(xué)〃}}AFX_DATA
所有和控件映射的變
量均在此
42
數(shù)據(jù)交換函數(shù)中的生成代碼
系統(tǒng)自動(dòng)添加代碼如下
voidCSteplDlg::DoDataExchange(CDatj^|^>lpDX)
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CStepTB<gL^
DDX_Control(pDX,IDJEDITl布
//}}AFX_DATA_MAP〔.口
43
2、在窗口初始化時(shí)添加代碼
■
BOOLCSteplDlg::OnInitDialog()
dLJ
京
郵//TODO:Addextrainitializationhere
m_edit.SetWindowText(nwelcomen);
電m_edit.EnableWindow(false);
大
returnTRUE;
學(xué)
//returnTRUEunlessyousetthefocustoacontrol
44
有文字,變灰
咫仃_,,________________________________7
北
樂(lè)
郵
電
大
學(xué)
45
3、編輯框的控制
■對(duì)話框數(shù)據(jù)交換機(jī)制
DDX(DialogDataexchange),用于控
件初始化和獲取用戶輸入的數(shù)總。
對(duì)話框數(shù)據(jù)驗(yàn)證DDV(Dialogdata
validation))用大對(duì)話框中輸入數(shù)據(jù)的合
法性檢驗(yàn)。/\
用戶只關(guān)心編輯框的內(nèi)容,不
關(guān)心編輯框的屬性,可以使用內(nèi)容
相關(guān)變量操作編輯框。
46
3、編輯框的控制
■通常使用UpdateData函數(shù)進(jìn)行數(shù)據(jù)傳遞。
UpdateData(true):控件->成員變量
UpdateData(false):成員變量->控件
■進(jìn)行數(shù)據(jù)交換時(shí)UpdateData函數(shù)將設(shè)置一
個(gè)CDataExchange對(duì)象)并調(diào)用對(duì)話框中
的DoDataExchange重載函數(shù)。
47
例2:編輯框使用
>使用DDX和DDV控制編輯框的內(nèi)容和長(zhǎng)度
1、變更控件變量并注釋掉OnlnitDialogO
中的原有代碼。
2、在OnlnitDialog。中添加新代碼
3、運(yùn)行
48
刪除原有變量,
1、變更控件變量增加新的變量
.ZJxJ
選擇ValueMemberVariablesAutomationActiveXEventsClassInfo
AddMemberVariableaxCjass...
Membervariablename:Variable...
E:\...\200
樂(lè)|m_edit|-
ControlIDs:IeVariable
Cancel
IDC_BUTTON1^^Category:
郵IDC_CHECK1UpdateColumns
Value
IDC_CHECK2
IDC_CHECK3BindAll
Variabletype:
電IDCC0MB01
IDCEDIT1jcStringZ1
IDC__TREE1
IDCANCEL
大IDOK
學(xué)Description:CS1validation
A
字符串選擇CString
整型選擇int、UINT、long等
Cancel
49
1、變更控件變量
北
樂(lè)-1-a
郵
電
大
學(xué)
50
4頭文件中的生成代碼_
//DialogData
//{{AFX_DATA(CSteplDlg)
enum{IDD=IDDSTEP1DIALOG};
CStringm_edit;
//}}AFX_DATA
51
構(gòu)造函數(shù)中的生成代碼
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數(shù)據(jù)交換函數(shù)中的生成代碼
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
最大字符數(shù)
<__________________________)
53
2、在OnlnitDialog。中添加新代碼
■
BOOLCSteplDlg::OnInitDialog()
樂(lè)//TODO:Addextrainitializationhere
1
郵//m_edit.SetWindowText("welcome');
//m_edit.EnableWindow(false);
電medit="123";
UpdateData(false);
returnTRUE;
學(xué)
//returnTRUEunlessyousetthefocustoacontrol
54
3、運(yùn)行
北
樂(lè)
郵
電
大
學(xué)
55
注意
■1、每一個(gè)控件只能關(guān)聯(lián)一個(gè)控件變量。
■2、Control類型的變量只能在窗口彈出時(shí)
使用??梢杂脕?lái)改變編輯框的內(nèi)容和屬
性。
■3、Value類型的變量只能改變編輯框的
內(nèi)容。
56
3、編輯框控制
■消息機(jī)制
控件響應(yīng)鍵盤(pán)或鼠標(biāo)的操作,稱為事件。
發(fā)送消息給控件;控件獲取消息后,進(jìn)行處理。
EN_CHABGE:內(nèi)容改變
EN_SETFOCUS:獲取焦點(diǎn)
EN_MAXTEXT:插入最多字符
■入口
菜單View〉ClassWizard
57
3、編輯框消息
MFCClassWizard控件消息
北
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度蔬菜種植基地承包合同范本(含農(nóng)產(chǎn)品追溯系統(tǒng))3篇
- 個(gè)人延續(xù)合作意向協(xié)議樣本(2024年版)版
- 二零二五年生物制藥研發(fā)與銷售合作協(xié)議
- 二零二五年特色小鎮(zhèn)房地產(chǎn)收購(gòu)合同3篇
- 事業(yè)單位編制內(nèi)聘用工作人員協(xié)議樣本2024版版B版
- 二手名車2024年交易合同范本
- 2025年度校園食堂運(yùn)營(yíng)管理合作合同3篇
- 專業(yè)化安裝工程采購(gòu)合作合同樣本版B版
- 2024版全周期機(jī)械養(yǎng)護(hù)服務(wù)協(xié)議版B版
- 二零二五年度城市景觀標(biāo)牌制作安裝一體化合同3篇
- 廣東省惠州市2024-2025學(xué)年高一上學(xué)期期末考試英語(yǔ)試題(含答案)
- 醫(yī)院骨科2025年帶教計(jì)劃(2篇)
- 2024-2025學(xué)年北京市東城區(qū)高一上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 環(huán)境保護(hù)應(yīng)急管理制度執(zhí)行細(xì)則
- 2024-2030年中國(guó)通航飛行服務(wù)站(FSS)行業(yè)發(fā)展模式規(guī)劃分析報(bào)告
- 機(jī)械制造企業(yè)風(fēng)險(xiǎn)分級(jí)管控手冊(cè)
- 地系梁工程施工方案
- 藏文基礎(chǔ)-教你輕輕松松學(xué)藏語(yǔ)(西藏大學(xué))知到智慧樹(shù)章節(jié)答案
- 2024電子商務(wù)平臺(tái)用戶隱私保護(hù)協(xié)議3篇
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 英語(yǔ) 含答案
- 醫(yī)學(xué)教程 常見(jiàn)體表腫瘤與腫塊課件
評(píng)論
0/150
提交評(píng)論