版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MFC基礎(chǔ)
指導(dǎo)教師:徐雅靜
1
4計(jì)算機(jī)實(shí)習(xí)
■一、實(shí)習(xí)內(nèi)容
京■二、演示例子
■三、相關(guān)知識
電1、對話框程序
大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>生
■存儲介質(zhì):.txt文件(學(xué)號唯一。
O
京
類別姓名學(xué)號年齡系別實(shí)驗(yàn)室發(fā)表文章
郵
B張山B09823電信學(xué)院
電
M測試Y09423電信學(xué)院Iab3
大M周正Y09323電信學(xué)院Iab2
學(xué)D王丹010229電信學(xué)院LAB920
4
~實(shí)習(xí)內(nèi)容
北■程序框架:1、基于對話框應(yīng)用程序。
京
郵
5
實(shí)習(xí)內(nèi)容
■程序框架:2、基于控制臺的應(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
李
誠
嘉
0029120電信工程學(xué)院
.
LJ
6
工實(shí)習(xí)內(nèi)容
■程序功能:
1.能夠顯示學(xué)生信息
2.能夠增加、刪除、編輯學(xué)生信息
3.能夠按照學(xué)號或姓名查詢學(xué)生信息
4.能夠分類統(tǒng)計(jì)(可選)、排序(可選)
5.能夠保存學(xué)生信息
7
工實(shí)習(xí)內(nèi)容
■評分標(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、基于對話框的例子
、4
樂
郵
9
二演示例子
2、基于控制臺的例子
樂
郵
U-T
大
10
三、相關(guān)知識
1、對話框程序
2、控件使用
標(biāo)簽、圖片、編輯框、按鈕、組合框、
列表框等。
3、類使用
4、文件使用
U
1、對話框程序
■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|
樂莉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é)國|Win32StaticLibrary
Platforms:
回Win32
3
2、選擇應(yīng)用程序類別DialogBased
A
y
<BackNext>FinishCancel
14
,3、選擇應(yīng)用程序外觀
I去掉該復(fù)選框
北
樂
郵
電
大
學(xué)
15
,4、選擇應(yīng)用程序風(fēng)格
北
郵
電
大
學(xué)
16
5、確認(rèn)相關(guān)類名稱
北
樂
郵
電
大
學(xué)
17
6、完成夕顯示主窗口
Stepl-MicrosoftVisualC++-[StepErc-roD_STEPl.DIALOG(Dialog)]主對話框
^^ditViewInsertprojectBuildLayoutToolsWindowHelp
對話框資Q&暇國百%|MAXVALUE二I?
Dlg司I[Allclassmembers).CStepIDIg三|回▼
源入口工」
國C_JjDialog-mam
?_JIcon
樂國_jVersion
郵
TODO-在這里設(shè)置對話控制.
Class視圖
學(xué)
Resource視圖File視圖控件面版
」....廣.3
V
田|皮/卓出|固曲|H*」E3國畫|熬百
亡0,0iu320x20018
Ready
對話框或控件
-共同特征
1、Resource:外觀
2、Class:邏輯實(shí)現(xiàn)
3、File:物理存儲
19
20
說明
o
■1、CSteplApp類
應(yīng)用程序類,該類中包含程序的入口函數(shù):
BOOLCSteplApp::lnitlnstance()
CSteplDIgdig;
m__pMainWnd=&dlg;
)
對應(yīng)的文件Stepl.h和StepLcpp。
21
二^應(yīng)用程序類調(diào)用
說明
■2、CSteplDIg
主對話框類,卻省應(yīng)用程序的主窗口。
〃數(shù)據(jù)交換的支持函數(shù)
voidDoDataExchange(CDataExchange*pDX)
〃對話框初始化函數(shù)
BOOLOnlnitDialogQ
〃屏幕刷新函數(shù)
voidOnPaint()
對應(yīng)的文件SteplDIg.h和SteplDIg.cpp。
22
2、控件使用
歐w
?
、?靜態(tài)圖片
靜態(tài)文本?n為abl---------->編輯框
組框--------o--A按鈕—>單選框
復(fù)選框?fx回
國
甌
組合框------畫--,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹形視圖
a日
標(biāo)簽&目
n臼
?腐
23
二常用控件資源
北
京
郵
電
大
學(xué)
二常用控件資源
■什么是控件?
具有外觀、屬性和行為的元素,也就是說
每一種控件=resource+class。比如編輯框
fCEdit類,按鈕fCButton類
25
1、靜態(tài)控件
■靜態(tài)控件是用來顯示一個(gè)字符、邊框、
圖標(biāo)、位圖等)一般不接受用戶的輸入,
也不產(chǎn)生任何事件。
26
1、靜態(tài)控件
歐w
?
、?靜態(tài)圖片
靜態(tài)文本,n為abl---------->編輯框
組框--------o---A按鈕—>單選框
復(fù)選框?fx回
國
甌
組合框-------畫-,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹形視圖
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
樂取消Qab0l
□IDRInsert...
6
EjVersion垃時(shí)找…
S3VSJlx回
▼DockingView函
EB囹
tilde
郵a國
囪Propertil
室
囹
除
電㈡日
獨(dú)
國
n|£
大£國
Configuration:Stepl-Win32Debug
-0error(s),0v)arning(s)
Resource
]|$|靜歸^|囤曲H舊「電|稀口|
Createsanewresourceofanytype29
次開始I冷宜⑶同引》|C++小學(xué)期|畫MicrosoftPowerPoint?[M,」|8Stepl?Mic但oftVisualC..4*總囤⑵”
D添加圖片資小T
一二,資源窗口,,
'用于手
,繪圖案
選擇已
有圖案y
選擇
30
2)將控件和圖片資源關(guān)聯(lián)
1、用鼠標(biāo)選中“靜態(tài)圖片”,并拖入對話框中
2、點(diǎn)擊鼠標(biāo)右鍵,彈出屬性對話框^
'類型選擇
Bitmap
資源ID
1
31
2)將控件和圖片資源關(guān)聯(lián)
北
京
郵
電
大
32
靜態(tài)文本和組框
-適用范圍
一般用于靜態(tài)的說明文字和邊框,
與其他控件共同使用。
■使用步驟
1、將控件拖入對話框
2、設(shè)置屬性
33
2、編輯框
歐w
?
、?靜態(tài)圖片
靜態(tài)文本?n為abl---------->編輯框
組框--------o--A按鈕—>單選框
復(fù)選框?fx回
國
甌
組合框------畫--,列表框
周
仝
▼皿
g隰
5
列表視圖*ED,樹形視圖
a日
標(biāo)簽&目
n臼
?腐
34
12、編輯框
-適用范圍
一般用于可編輯的單行或多行文字。
■編輯框相關(guān)知識
resource:資源外觀,有唯一的ID
class:CEdit
成員變量:屬性
成員函數(shù):設(shè)置屬性和行為
CEdit的對象:控件變量
35
2、編輯框
如何使用編輯框?
1、將控件拖入對話框
2、設(shè)置屬性
3、編程對其進(jìn)行控制
1)設(shè)置關(guān)聯(lián)控件變量
2)使用變量調(diào)用相關(guān)成員函數(shù)
36
2、編輯框?qū)傩?/p>
蓄本僖目
顯示*姓名:|vvv
北
rm
EditProperties
樂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é)〃編輯框是否可見
ShowWindow(int);
38
例1:編輯框使用
>設(shè)置編輯框的文字并使其變灰
1、設(shè)置控件變量
點(diǎn)擊View->ClassWizard
2、在窗口初始化時(shí)添加代碼
39
人單置母牛變量點(diǎn)擊添加變量
V_____________
北
樂
郵
電
大
學(xué)
1、設(shè)置控件變量
北
樂
郵
電
大
學(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
北
樂
郵
電
大
學(xué)
45
3、編輯框的控制
■對話框數(shù)據(jù)交換機(jī)制
DDX(DialogDataexchange),用于控
件初始化和獲取用戶輸入的數(shù)總。
對話框數(shù)據(jù)驗(yàn)證DDV(Dialogdata
validation))用大對話框中輸入數(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對象)并調(diào)用對話框中
的DoDataExchange重載函數(shù)。
47
例2:編輯框使用
>使用DDX和DDV控制編輯框的內(nèi)容和長度
1、變更控件變量并注釋掉OnlnitDialogO
中的原有代碼。
2、在OnlnitDialog。中添加新代碼
3、運(yùn)行
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
學(xué)Description:CS1validation
A
字符串選擇CString
整型選擇int、UINT、long等
Cancel
49
1、變更控件變量
北
樂-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()
樂//TODO:Addextrainitializationhere
1
郵//m_edit.SetWindowText("welcome');
//m_edit.EnableWindow(false);
電medit="123";
UpdateData(false);
returnTRUE;
學(xué)
//returnTRUEunlessyousetthefocustoacontrol
54
3、運(yùn)行
北
樂
郵
電
大
學(xué)
55
注意
■1、每一個(gè)控件只能關(guān)聯(lián)一個(gè)控件變量。
■2、Control類型的變量只能在窗口彈出時(shí)
使用。可以用來改變編輯框的內(nèi)容和屬
性。
■3、Value類型的變量只能改變編輯框的
內(nèi)容。
56
3、編輯框控制
■消息機(jī)制
控件響應(yīng)鍵盤或鼠標(biāo)的操作,稱為事件。
發(fā)送消息給控件;控件獲取消息后,進(jìn)行處理。
EN_CHABGE:內(nèi)容改變
EN_SETFOCUS:獲取焦點(diǎn)
EN_MAXTEXT:插入最多字符
■入口
菜單View〉ClassWizard
57
3、編輯框消息
MFCClassWizard控件消息
北
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙江省寧波市咸祥中學(xué)2025屆高一上數(shù)學(xué)期末檢測模擬試題含解析
- 商務(wù)系統(tǒng)相關(guān)管理知識培訓(xùn)
- 2025屆新疆昌吉市英語高三第一學(xué)期期末聯(lián)考試題含解析
- 江蘇省蘇州新草橋中學(xué)2025屆英語高三上期末檢測模擬試題含解析
- 2025屆湖北省鄂州市華容高級中學(xué)高一生物第一學(xué)期期末綜合測試模擬試題含解析
- 2025屆全國100所名校高三生物第一學(xué)期期末調(diào)研試題含解析
- 2025屆四川省眉山市外國語學(xué)校數(shù)學(xué)高三上期末達(dá)標(biāo)檢測模擬試題含解析
- 2025屆臨滄市重點(diǎn)中學(xué)英語高三第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測試題含解析
- 浙江省麗水四校2025屆高一生物第一學(xué)期期末考試模擬試題含解析
- 2025屆西藏自治區(qū)拉薩市拉薩那曲第二高級中學(xué)英語高三第一學(xué)期期末復(fù)習(xí)檢測試題含解析
- 河北省滄州市藥品零售藥店企業(yè)藥房名單目錄
- 《試驗(yàn)設(shè)計(jì)與統(tǒng)計(jì)分析》課程教學(xué)大綱
- 高一生物 基因工程的基本操作步驟(第1課時(shí)) 基因工程的基本操作程序 教學(xué)設(shè)計(jì)
- 奧運(yùn)項(xiàng)目介紹課件
- 2020年中國自由貿(mào)易試驗(yàn)區(qū)發(fā)展白皮書課件
- 糖尿病高危人群健康管理課件
- 呂氏春秋卷十一 仲冬紀(jì) 忠廉原文及翻譯
- 《相遇問題》-完整版PPT
- 滬教牛津版四年級上冊小學(xué)英語Module 2單元測試題(含聽力文件)
- 50430審核員考試試題
- 應(yīng)急物資儲備一覽表格模板
評論
0/150
提交評論