MFC基礎(chǔ)知識課件_第1頁
MFC基礎(chǔ)知識課件_第2頁
MFC基礎(chǔ)知識課件_第3頁
MFC基礎(chǔ)知識課件_第4頁
MFC基礎(chǔ)知識課件_第5頁
已閱讀5頁,還剩142頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論