第7章 Visual C++可視化編程基礎(chǔ)_第1頁(yè)
第7章 Visual C++可視化編程基礎(chǔ)_第2頁(yè)
第7章 Visual C++可視化編程基礎(chǔ)_第3頁(yè)
第7章 Visual C++可視化編程基礎(chǔ)_第4頁(yè)
第7章 Visual C++可視化編程基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩54頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章VisualC++可視化編程基礎(chǔ)7.1Windows程序設(shè)計(jì)概述7.2API及應(yīng)用程序基本框架7.3MFC及應(yīng)用程序框架7.4對(duì)話框與常用控件7.5菜單、工具欄與狀態(tài)欄設(shè)計(jì)7.6文檔/視圖結(jié)構(gòu)應(yīng)用程序7.7程序舉例編輯ppt7.1.1基于VisualC++的Windows應(yīng)用程序設(shè)計(jì)方法7.1Windows程序設(shè)計(jì)概述用VisualC++編寫Windows應(yīng)用程序主要有兩種方法:

1.ApplicationProgrammingInterface——APIAPI是Windows系統(tǒng)和Windows應(yīng)用程序間的標(biāo)準(zhǔn)程序接口,應(yīng)用程序可以通過(guò)此接口訪問(wèn)系統(tǒng)。凡是在Windows工作環(huán)境下執(zhí)行的應(yīng)用程序都可以通過(guò)調(diào)用API函數(shù)來(lái)實(shí)現(xiàn)各種功能的操作。在Windows程序設(shè)計(jì)的初期,程序員所能做使用的編程工具就只有使用API函數(shù),通過(guò)API函數(shù)的調(diào)用組合,就可以搭建出各種界面豐富、功能靈活的應(yīng)用程序。

2.MicrosoftFoundationClass——MFCMFC是VisualC++的核心,是Microsoft公司提供的用來(lái)編寫Windows應(yīng)用程序的C++類庫(kù),集成了大量已經(jīng)預(yù)先定義好的類,大約有200多個(gè),用戶可以根據(jù)編程的需要調(diào)用相應(yīng)的類或自定義有關(guān)的類。這些類可以分成兩種:一是CObject類的派生類;二是非CObject派生類,如表示點(diǎn)的CPoint類,表示矩形的CRect類等。編輯ppt編輯ppt7.1.2Windows程序設(shè)計(jì)的基本概念

Windows應(yīng)用程序的特點(diǎn):具有標(biāo)準(zhǔn)的圖形用戶界面。具有與硬件無(wú)關(guān)的特性。采用“消息傳遞,事件驅(qū)動(dòng)”的運(yùn)行機(jī)制。1.窗口與對(duì)象

窗口是應(yīng)用程序與用戶之間交互的接口環(huán)境。用戶可以通過(guò)窗口輸入數(shù)據(jù),控制應(yīng)用程序的運(yùn)行;應(yīng)用程序可以通過(guò)窗口顯示數(shù)據(jù)和運(yùn)行狀態(tài)。對(duì)象是指Windows的規(guī)范部件,包括各種窗口、菜單、按鈕、對(duì)話框以及程序模塊等。2.常用Windows數(shù)據(jù)類型

Windows應(yīng)用程序的源程序中包含種類繁多的數(shù)據(jù)類型,其中windows.h是用戶調(diào)用系統(tǒng)功能的關(guān)鍵,文件中定義了Windows系統(tǒng)使用的數(shù)據(jù)類型。

編輯ppt3.句柄

句柄是指系統(tǒng)創(chuàng)建對(duì)象后返回的用來(lái)代表該對(duì)象的一個(gè)唯一的4字節(jié)長(zhǎng)整數(shù)值,是整個(gè)Windows編程的基礎(chǔ),用于標(biāo)識(shí)應(yīng)用程序中不同的對(duì)象和同類對(duì)象中不同的實(shí)例。例如,一個(gè)窗口、按鈕、圖標(biāo)、滾動(dòng)條、輸出設(shè)備、控件或者文件等。應(yīng)用程序通過(guò)句柄能夠訪問(wèn)相應(yīng)的對(duì)象信息,它代表對(duì)對(duì)象的引用。

4.事件驅(qū)動(dòng)

Windows應(yīng)用程序以消息為基礎(chǔ),以事件驅(qū)動(dòng)之。Windows應(yīng)用程序啟動(dòng)之后將進(jìn)入一個(gè)消息循環(huán),等待系統(tǒng)或應(yīng)用程序的消息,消息的產(chǎn)生是因?yàn)槭录l(fā)生的結(jié)果,Windows程序設(shè)計(jì)主要圍繞編寫事件或消息的響應(yīng)函數(shù)上。

5.消息及其在Windows編程中的應(yīng)用

Windows應(yīng)用程序的運(yùn)行是依靠事件來(lái)驅(qū)動(dòng),利用一個(gè)while循環(huán)實(shí)現(xiàn)不斷等待,如果有事件發(fā)生,操作系統(tǒng)會(huì)以消息的形式傳遞給應(yīng)用程序,應(yīng)用程序會(huì)捕獲相應(yīng)的消息,然后通過(guò)調(diào)用相應(yīng)的函數(shù)響應(yīng)消息。編輯ppt7.1.3Windows應(yīng)用程序中的常見消息消息在Windows程序設(shè)計(jì)中是很關(guān)鍵的因素,在API程序設(shè)計(jì)方法中要求熟練記憶常見消息,但是在MFC程序設(shè)計(jì)方法中只要求了解這些消息的相關(guān)含義即可。1.鼠標(biāo)消息2.鍵盤消息3.關(guān)閉窗口消息4.退出程序消息5.重畫消息編輯ppt7.2API及應(yīng)用程序基本框架7.2.1WindowsAPI應(yīng)用程序?qū)嵗?/p>

共有上千個(gè)標(biāo)準(zhǔn)的API函數(shù),調(diào)用方法與調(diào)用C語(yǔ)言庫(kù)函數(shù)類似示例:#include"windows.h"intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){MessageBox(NULL,"簡(jiǎn)單的Windows應(yīng)用程序!","API函數(shù)示例",MB_OK);return0;}編輯ppt注意:不是典型的Windows應(yīng)用程序,典型WinMain具有固定結(jié)構(gòu),完成三個(gè)任務(wù):

注冊(cè)窗口類、創(chuàng)建并初始化窗口、創(chuàng)建消息循環(huán)編輯ppt7.2.2WindowsAPI應(yīng)用程序結(jié)構(gòu)分析Windows應(yīng)用程序具有相對(duì)固定的基本結(jié)構(gòu),其中由入口函數(shù)WinMain和窗口函數(shù)構(gòu)成基本框架,并包含各種數(shù)據(jù)類型、數(shù)據(jù)結(jié)構(gòu)與函數(shù)等。1.WinMain函數(shù)WinMain函數(shù)是所有Windows應(yīng)用程序的入口,類似于C語(yǔ)言中的main函數(shù),其功能是完成一系列的定義和初始化工作,并產(chǎn)生消息循環(huán)。WinMain函數(shù)有三個(gè)基本的組成部分:函數(shù)說(shuō)明、初始化和消息循環(huán)。2.窗口函數(shù)窗口函數(shù)是應(yīng)用程序處理接收到的消息的函數(shù),其中包含了應(yīng)用程序?qū)Ω鞣N可能接收到的消息的處理過(guò)程。編輯ppt7.3MFC及應(yīng)用程序框架

7.3.1MFC概述微軟基礎(chǔ)類庫(kù)(MFC)是微軟為Windows程序員提供的一個(gè)面向?qū)ο蟮腤indows編程接口,它封裝了大部分WindowsAPI函數(shù),大大簡(jiǎn)化了Windows編程工作。Microsoft公司的MFC具有以下特點(diǎn):1.完全支持所有的Windows函數(shù)、控制、消息、GDI(圖形設(shè)備接口)基本圖形函數(shù)、菜單以及對(duì)話框。2.使用與傳統(tǒng)的WindowsAPI同樣的命名規(guī)則,因此,一個(gè)類所能完成的工作可直接從名字得知。3.不使用容易產(chǎn)生錯(cuò)誤的switch/case語(yǔ)句。4.通過(guò)發(fā)送有關(guān)對(duì)象信息到文件的能力,來(lái)提供更好的判斷支持。也可以確認(rèn)成員變量。5.代碼少,速度快,容錯(cuò)處理能力強(qiáng)。6.在運(yùn)行時(shí)確定數(shù)據(jù)對(duì)象的設(shè)計(jì)。編輯ppt7.3.2應(yīng)用程序框架在VisualC++中,可以創(chuàng)建以下3類典型的Windows應(yīng)用程序,它們都是通過(guò)MFCAppWizard(exe)(以下簡(jiǎn)稱AppWizard)向?qū)?chuàng)建的:(1)基于對(duì)話框的應(yīng)用程序:這類程序適合于文檔較少而交互操作較多的應(yīng)用場(chǎng)合,如Windows自帶的計(jì)算器程序。(2)單文檔界面(SDI)應(yīng)用程序:這類程序一次只能打開一個(gè)文檔,如Windows自帶的記事本程序。(3)多文檔界面(MDI)應(yīng)用程序:這類程序可以同時(shí)打開多個(gè)文檔并進(jìn)行處理,處理的過(guò)程中很容易地進(jìn)行切換,如MicrosoftWord。編輯ppt7.4對(duì)話框與常用控件對(duì)話框是Windows應(yīng)用程序中最重要的用戶界面元素之一,是與用戶交互的重要手段。在VisualC++中,對(duì)話框既可以單獨(dú)組成一個(gè)簡(jiǎn)單的應(yīng)用程序,又可以成為文檔/視圖結(jié)構(gòu)程序的資源。7.4.1創(chuàng)建對(duì)話框程序的步驟1.建立基于對(duì)話框的MFC應(yīng)用程序框架2.放置控件,設(shè)置屬性,完成對(duì)話框窗口界面設(shè)計(jì)3.為控件連接變量,即為控件命名。4.添加并且編寫消息處理函數(shù)。5.編譯、鏈接并運(yùn)行應(yīng)用程序編輯ppt編輯ppt由于對(duì)話框的代碼是以類為模塊來(lái)設(shè)計(jì)的,使用時(shí)需要在程序中加入該類的頭文件,并定義一個(gè)類對(duì)象,然后就可以直接使用該類的相關(guān)成員。使用的步驟如下:1.利用項(xiàng)目工作區(qū)ClassView打開相應(yīng)的.cpp文件,在該源文件的前面加上對(duì)話框類的頭文件。假設(shè)我們?yōu)閷?duì)話框定義的類名為CMyDlg,則需在源文件的前面加上:#include“MyDlg.h”//注意頭文件前比類名少個(gè)大寫的C2.在需要調(diào)用的位置添加下列代碼:

CMyDlgdlg;//定義對(duì)話框?qū)ο?/p>

dlg.DoModal();//顯示對(duì)話框7.4.2對(duì)話框的調(diào)用編輯ppt為了方便用戶的程序開發(fā),VisualC++提供了一些通用對(duì)話框和消息對(duì)話框供用戶使用。1.通用對(duì)話框Windows提供了一組標(biāo)準(zhǔn)用戶界面的對(duì)話框,它們都有相應(yīng)的MFC庫(kù)中的類來(lái)支持。用來(lái)操作這些通用對(duì)話框的類就是CCommonDialog類,它從Cdialog類中派生,用戶可以與使用其他對(duì)話框一樣使用通用對(duì)話框。2.消息對(duì)話框消息對(duì)話框是最簡(jiǎn)單的一種對(duì)話框,它只是用于顯示信息。在VisualC++6.0的MFC類庫(kù)中就提供相應(yīng)的函數(shù)實(shí)現(xiàn)這樣的功能,使用時(shí),只要在用戶程序任何地方調(diào)用它們即可。它們的函數(shù)原型如下:7.4.3通用對(duì)話框與消息對(duì)話框編輯ppt

intAfxMessageBox(LPCTSTRlpszText,UINTnType=MB_OK,UINTnIDHelp=0);intMessageBox(LPCTSTRlpszText,LPCTSTRlpszCaption=NULL,UINTnType=MB_OK);這兩個(gè)函數(shù)都是用于創(chuàng)建和顯示消息對(duì)話框的,只不過(guò)AfxMessageBox是全程函數(shù),可用在任何地方。而MessageBox只能用于控件、對(duì)話框、窗口等一些窗口類中。例如:intn=MessageBox("輸入成績(jī)?","系統(tǒng)提示",MB_YESNO|MB_ICONQUESTION);if(n==IDYES) {……}編輯ppt1.控件添加的方法

2.控件的選取

3.控件的移動(dòng)、復(fù)制與刪除

4.設(shè)定控件的Tab鍵次序

5.控件的布局

6.常用控件的控件通知消息

選擇指針靜態(tài)文本控件組框復(fù)選框組合框水平滾動(dòng)條旋轉(zhuǎn)滑塊列表控件Tab控件超文本控件月歷自定義控件圖像編輯框按鈕單選按鈕列表框垂直滾動(dòng)條進(jìn)度條熱鍵樹狀控件動(dòng)畫日期時(shí)間選擇IP地址擴(kuò)展組合框圖7.13控件工具欄上下左右對(duì)齊水平或垂直方向均勻分布切換柵格或向?qū)舷禄蜃笥揖又惺箍丶哂邢嗤膶挾然虼笮y(cè)試對(duì)話框圖7.15控件布局工具欄7.4.4控件基本操作編輯ppt7.4.5CString類對(duì)字符串的存取及有關(guān)操作,還可通過(guò)標(biāo)準(zhǔn)C++里的字符串類string(定義在string.h頭文件中)和MFC中的CString類(定義在afx.h頭文件中)。string是一種用戶自定義的數(shù)據(jù)類型,它由C++標(biāo)準(zhǔn)庫(kù)來(lái)支持,而不是C++語(yǔ)言本身的一部分。在使用string數(shù)據(jù)類型之前,需要在程序中包含頭文件string并聲明其所在的名字空間std,如:#include<string>usingnamespacestd;然后在程序中即可定義string類型的變量。如:

stringname="張三";下面主要介紹MFC中CString類的使用。編輯ppt當(dāng)要使用MFC中的CString類時(shí),首先必須選擇“工程→設(shè)置”命令,在“MicrosoftFoundationClass”選擇除“NotUsingMFC”以外的項(xiàng)目。然后源程序的頭文件加上:#include"afx.h"形式:CString對(duì)象名;CString對(duì)象名="字符串常量";CString對(duì)象名("字符串常量");CString對(duì)象名('字符',intn);//重復(fù)產(chǎn)生n個(gè)相同的字符例如:CStrings1="C++程序設(shè)計(jì)";CStrings('d',5);cout<<s;//s獲得字符串”ddddd”1.定義CString類對(duì)象編輯pptCString類的特色之一是可將一些常用運(yùn)算符直接作用用于其對(duì)象。假設(shè)已有如下定義的CString對(duì)象:CStringst1("ASDFG"),st2,st3("DD");運(yùn)算符含義實(shí)例結(jié)果=賦值st2=”C++程序設(shè)計(jì)”;st3=st1;st2的值為”C++程序設(shè)計(jì)”st3的值為”ASDFG”+字符串連接st2=st2+”教程”st2的值為”C++程序設(shè)計(jì)教程”+=字符串連接并賦值st2+=”教程”在st2相同初值的基礎(chǔ)上效果同上>、<、==、>=、<=、!=關(guān)系運(yùn)算st1==”ASDF”st1<st3falsetrue[]取指定位置的字符將CString對(duì)象看成數(shù)組st1[0]st1[3]‘A’//第一個(gè)字符位置為0‘F’2.基本運(yùn)算編輯ppt形式:

函數(shù)值類型CString對(duì)象.成員函數(shù)名(參數(shù)列表)(1)取子串形式:CStringMid(intnFirst,intnCount)

//取字符串中nFirst位置開始的nCount個(gè)字符CStringLeft(intnCount)//取字符串的左邊nCount個(gè)字符CStringRight(intnCount)//取字符串的右邊nCount個(gè)字符有定義:CStrings("12345");則:s.Mid(2,2)的值為34s.Left(3)的值為1233.成員函數(shù)編輯ppt(2)查看字符串信息intFind(TCHARch);//返回指定字符在串中的位置intFind(LPCTSTRlpszSub);//返回指定子串在串中的位置intGetLength();//返回字符串的字符數(shù)(3)字符串修改voidSetAt(intnIndex,TCHARch)

//用字符替換指定位置上的字符intInsert(intnIndex,TCHARch)

//將字符插入到指定位置,原位置的字符右移intDelete(intnIndex,intnCount=1)

//從指定位置開始刪除一個(gè)或多個(gè)字符intReplace(TCHARchOld,TCHARchNew)

//將新字符替換字符串中的老字符intReplace(LPCTSTRlpszOld,LPCTSTRlpszNew)

//同上,區(qū)別替換的是子字符串編輯ppt(4)轉(zhuǎn)換字符串voidMakeUpper()//將字符串中的所有字符轉(zhuǎn)換成大寫

voidMakeLower()//將字符串中的所有字符轉(zhuǎn)換成小寫

voidMakeReverse()//將字符串中各字符的順序倒轉(zhuǎn)voidEmpty()//將字符串中的所有字符刪除(5)格式化輸出形式:viodFormat(格式字符串,輸出參數(shù)列表);功能:構(gòu)造一個(gè)輸出的字符串。其中:1)“格式字符串”由輸出的文字和數(shù)據(jù)格式說(shuō)明符組成,文字可以是直接鍵入的各種字符,還可以是轉(zhuǎn)義符;數(shù)據(jù)格式說(shuō)明符形式:%[輸出寬度]格式字符編輯ppt格式字符說(shuō)明d十進(jìn)制整數(shù)c輸出單個(gè)字符s輸出字符串flff以小數(shù)形式輸出單精度數(shù)lf雙精度數(shù)2)“輸出參數(shù)列表”表示要輸出的數(shù)據(jù),其個(gè)數(shù)與類型必須與格式說(shuō)明符依次對(duì)應(yīng)。有定義:CStrings;則:s.Format("a1=%d,a2=%5.2f,a3=%s",123,12.3,"abc");cout<<s;輸出:a1=123,a2=12.30,a3=abc編輯ppt【例7-1】使用CString類對(duì)象數(shù)組存放若干個(gè)字符串,采用選擇法排序,實(shí)現(xiàn)對(duì)字符串?dāng)?shù)組的排序。程序:#include

"iostream.h"

#include"afx.h"voidmain(){CStrings[4]={"Fortran","C++","Pascal","VisualBasic"},t;inti,j,m;for(i=0;i<3;i++)//選擇法排序

{m=i;

for(j=i+1;j<4;j++) if(s[j]<s[m])m=j;t=s[i];s[i]=s[m];s[m]=t;}for(i=0;i<4;i++)cout<<i<<""<<s[i]<<endl; }編輯ppt1.靜態(tài)控件:包括靜態(tài)文本(StaticText)、組框和圖片控件(Picture)。

7.4.6常用控件與功能函數(shù)編輯ppt2.按鈕控件

按鈕是用于實(shí)現(xiàn)一種開與關(guān)的輸入,常用的有:普通按鈕、復(fù)選框按鈕和單選按鈕。MFC的CButton類封裝了按鈕控件。普通按鈕也稱命令按鈕,可以立即產(chǎn)生某個(gè)動(dòng)作、執(zhí)行某個(gè)命令,一般不需要連接變量;單選按鈕必須成組出現(xiàn),用戶在一組按鈕中最多只能選擇一項(xiàng)。設(shè)計(jì)時(shí)同一組的按鈕必須一個(gè)接一個(gè)地放進(jìn)對(duì)話框中,中間不能插入其他控件,并且一個(gè)組的第一個(gè)按鈕要選中“Group”屬性,表示一組的開始。一組按鈕中只能對(duì)第一個(gè)按鈕連接變量;復(fù)選框按鈕列出了可供選擇的項(xiàng),用戶可根據(jù)需要選擇其中的一項(xiàng)或多項(xiàng),各項(xiàng)之間的狀態(tài)互不相關(guān)。復(fù)選框通常被連接到Value類別BOOL類型的變量中。編輯ppt按鈕控件的消息中,常見的只有單擊按鈕BN_CLICKED和雙擊按鈕BN_DOUBLECLICKED。CButton類的成員函數(shù)SetCheck和GetCheck函數(shù)原型如下:格式:viodSetCheck(intnCheck);說(shuō)明:設(shè)置復(fù)選框的選中狀態(tài)格式:intGetCheck()const;說(shuō)明:獲取復(fù)選框的選中狀態(tài)其中,nCheck和GetCheck函數(shù)返回的值可以是:0表示不選中,1表示選中,2表示不確定。CWnd類的成員函數(shù)CheckRadioButton和GetCheckedRadioButton的原型如下:格式:voidCheckRadioButton(intnIDFirstButton,intnIDLastButton,intnIDCheckButton);說(shuō)明:設(shè)置單選按鈕的選中狀態(tài)編輯ppt格式:intGetCheckedRadioButton(intnIDFirstButton,intnIDLastButton);說(shuō)明:獲取單選按鈕的選中狀態(tài)其中,nIDFirstButton和nIDLastButton分別指定這組單選按鈕的第一個(gè)和最后一個(gè)按鈕ID值,nIDCheckButton用于指定要設(shè)置選中狀態(tài)的按鈕ID值,函數(shù)指定GetCheckedRadioButton返回選中的按鈕ID值。格式:UINTIsDlgButtonChecked(intnIDButton)const;說(shuō)明:用于判定單選按鈕是否被選定,如果ID為nIDButton的按鈕被選定,則該函數(shù)的返回值為true,否則為false。編輯ppt【例7-2】設(shè)計(jì)一個(gè)如圖7.19所示的程序。當(dāng)單擊“結(jié)果”按鈕后,在消息框中顯示選擇情況。

編輯ppt3.編輯框控件

1.重要屬性Multiline:定義該編輯框?yàn)槎嘈形谋究颉umber:限定輸入的字符只能是數(shù)字字符。Border:為控件創(chuàng)建邊界。Read-only:編輯框成為只讀的,禁止用戶編輯。編輯ppt2.成員函數(shù)編輯ppt從CWnd類繼承的成員函數(shù)(1)將編輯框中的內(nèi)容復(fù)制出來(lái) //復(fù)制到CString對(duì)象 voidGetWindowText(CString&rString)const; 示例:CStringch; m_e.GetWindowText(ch); //復(fù)制到數(shù)組 intGetWindowText(LPTSTRlpszStringBuf, intnMaxCount)const; 示例:charch[80]; m_e.GetWindowText(ch,80);(2)設(shè)置編輯框中的內(nèi)容 voidSetWindowText(LPCTSTRlpszString); 示例:charch[20]="abcdefg"; m_e.SetWindowText(ch);編輯ppt3.連接變量

Control:只能是CEdit類型

Value:CString int double等注意:若一個(gè)編輯框連接了一個(gè)Value類別的變量,則該變量就表示這個(gè)編輯框,編輯框中顯示的內(nèi)容就是變量的值。但是,改變了編輯框的內(nèi)容并不會(huì)自動(dòng)更新對(duì)應(yīng)的變量的值,同樣,改變了變量的值也不會(huì)自動(dòng)刷新編輯框的內(nèi)容。若編輯框的內(nèi)容改變了,則應(yīng)使用語(yǔ)句UpdateData(TRUE);更新對(duì)應(yīng)的變量的值;若變量的值改變了,則應(yīng)使用語(yǔ)句UpdateData(FALSE);刷新編輯框的內(nèi)容。編輯pptvoidCTESTDlg::OnCalc(){UpdateData(TRUE);doublea=m_a;doubleb=m_b;doublec=m_c;m_x1=(-b+sqrt(b*b-4*a*c)) /(2*a);m_x2=(-b-sqrt(b*b-4*a*c)) /(2*a);UpdateData(FALSE);}【例7.2】輸入一元二次方程ax2+bx+c=0的系數(shù)a、b、c,計(jì)算并輸出兩個(gè)根x1、x2m_x1(double)m_x2(double)m_a(double)m_b(double)m_c(double)voidCTESTDlg::OnOk(){OnOK();}ID:OkID:Calc編輯ppt示范操作編輯ppt【例7-3】使用靜態(tài)文本框、組框、編輯框以及按鈕等控件設(shè)計(jì)一個(gè)如圖7.20所示的程序。當(dāng)用戶在語(yǔ)文、數(shù)學(xué)、英語(yǔ)編輯框輸入成績(jī)后,單擊“計(jì)算平均分”按鈕后,將顯示這三門課的平均成績(jī)。

編輯ppt(1)屬性設(shè)置Selection:選擇方式 Single──單項(xiàng)選擇 Multiple──多項(xiàng)選擇,但是忽略Ctrl和Alt鍵。 Extended──允許使用Ctrl和Alt進(jìn)行多項(xiàng)選擇 None──禁止選擇Sort:排序(2)成員函數(shù)

添加:intAddString(LPCTSTRlpszItem);示列:m_l.AddString(“大學(xué)計(jì)算機(jī)基礎(chǔ)");4.列表框控件

編輯ppt刪除:intDeleteString(UINTnIndex);示例:m_l.DeleteString(4); //刪除第5個(gè)說(shuō)明:下標(biāo)從0開始獲取當(dāng)前選定項(xiàng)目的序號(hào) intDeleteString(UINTnIndex);格式:intGetCurSel()const;示例:inti=m_l.GetCurSel();獲取指定項(xiàng)目 intGetText(intnIndex,LPTSTRlpszBuffer)const;voidGetText(intnIndex,CString&rString)const;示例: chars1[20]; CStrings2;, m_l.GetText(4,s1); //讀入數(shù)組m_l.GetText(4,s2); //讀入CString對(duì)象編輯ppt【例7-4】編寫一個(gè)如圖所示的能對(duì)列表框進(jìn)行項(xiàng)目添加、修改和刪除操作的應(yīng)用程序?!疤砑印卑粹o的功能是將文本框中的內(nèi)容添加到列表框,“刪除”按鈕的功能是刪除列表框中選定的選項(xiàng)。如果要修改列表框,則首先選定選項(xiàng),然后單擊“修改”按鈕,所選的選項(xiàng)顯示在文本框中,當(dāng)在文本框中修改完之后再單擊“修改確定”按鈕更新列表框。

編輯ppt5.組合框控件

Ctrl+Enter鍵(1)屬性設(shè)置編輯ppt(2)成員函數(shù)

編輯框和列表框的成員函數(shù)

GetText()不能用intGetLBText(intnIndex,LPTSTRlpszText)const;voidGetLBText(intnIndex,CString&rString)const;(3)組合框發(fā)出的消息

CBN_SELECTCHANGE:選項(xiàng)改變CBN_EDITCHANGE:編輯框中文本改變【例7-5】設(shè)計(jì)一個(gè)如圖7.23所示的對(duì)話框。如果單擊“確定”按鈕,則用MessageBox顯示所設(shè)置的信息。編輯ppt6.滾動(dòng)條控件滾動(dòng)條是CScrollBar類的對(duì)象,是Windows應(yīng)用程序中一個(gè)很重要的控件,通常附在對(duì)話框上用來(lái)協(xié)助觀察數(shù)據(jù)或確定位置,也可以用來(lái)作為數(shù)據(jù)輸入的工具。滾動(dòng)條有水平和垂直兩種。主要成員函數(shù)的原型如下:

(1)設(shè)置最大值和最小值

voidSetScrollRange(intnMinPos,intnMaxPos,BOOLbRedraw=TRUE);

最小值 最大值TRUE時(shí)重畫(2)設(shè)置滑塊的位置

intSetScrollPos(intnPos,BOOLbRedraw=TRUE);

滑塊的位置TRUE時(shí)重畫

編輯ppt滾動(dòng)條沒有消息,但對(duì)話框卻能接收到WM_HScroll(WM_Vscroll)voidCTESTDlg::OnHScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCDialog::OnHScroll(nSBCode,nPos,pScrollBar);}

pScrollBar:指向用戶正在操作的滾動(dòng)條。nPos:滑塊當(dāng)前位置。nSBCode:用戶正在進(jìn)行的操作編輯ppt7.進(jìn)度條控件

進(jìn)度條除了能表示一個(gè)過(guò)程的進(jìn)展情況外,使用進(jìn)度條還可以表明溫度、水平面或類似的測(cè)量值。進(jìn)度條的風(fēng)格屬性有:進(jìn)度條是否有邊框、水平(默認(rèn))還是垂直、用塊還是平滑填充進(jìn)度條。對(duì)進(jìn)度條的操作都是通過(guò)相關(guān)的CProgressCtrl類成員函數(shù)來(lái)實(shí)現(xiàn)的。形式:intSetPos(intnPos);

說(shuō)明:設(shè)置進(jìn)度條的當(dāng)前位置。形式:intGetPos();

說(shuō)明:獲取進(jìn)度條的當(dāng)前位置。形式:intSetStep(intnStep);

說(shuō)明:獲取進(jìn)度條的當(dāng)前位置。編輯ppt8.旋轉(zhuǎn)按鈕控件

旋轉(zhuǎn)按鈕伙伴窗口旋轉(zhuǎn)按鈕控件也稱增減按鈕,用戶單擊它們來(lái)增加或減小某個(gè)值。旋轉(zhuǎn)按鈕控件通常是與一個(gè)相拌的控件一起使用。若相伴的的控件的Tab次序剛好在旋轉(zhuǎn)按鈕的前面,則這時(shí)的旋轉(zhuǎn)按鈕控件可以自動(dòng)定位在它的伙伴窗口的傍邊,看起來(lái)就像一個(gè)單一的控件。一般將一個(gè)旋轉(zhuǎn)按鈕與一個(gè)編輯框一起使用,以提示用戶進(jìn)行數(shù)字輸入。如圖7.24所示。編輯ppt默認(rèn)時(shí)旋轉(zhuǎn)按鈕控件的最小值是100,最大值是0,看起來(lái)好像顛倒一樣,需要使用成員函數(shù)SetRange來(lái)改變。用戶單擊向上箭頭則增加數(shù)值,而單擊向下箭頭則減少數(shù)值。使用時(shí),不要忘記在旋轉(zhuǎn)按鈕控件的屬性對(duì)話框中選中“自動(dòng)結(jié)伴”和“設(shè)置結(jié)伴整數(shù)”。MFC的CSpinButtonCtrl類提供了旋轉(zhuǎn)按鈕控件的各種操作函數(shù),常用的函數(shù)原型有:形式:intSetPos(intnPos);

說(shuō)明:設(shè)置旋轉(zhuǎn)按鈕控件的當(dāng)前位置。形式:voidSetRange(intnLower,intnUpper);說(shuō)明:設(shè)置旋轉(zhuǎn)按鈕控件的上下限。

旋轉(zhuǎn)按鈕控件的通知消息只有一個(gè):UDN_DELTAPOS,它是當(dāng)控件的當(dāng)前數(shù)值將要發(fā)生改變時(shí)向其父窗口發(fā)送的。編輯ppt9.滑塊控件

刻度線滑塊滑塊控件是由滑塊和可選的刻度線組成的。當(dāng)用戶用鼠標(biāo)或方向鍵移動(dòng)滑塊時(shí),該控件發(fā)送通知消息來(lái)表明本次改變?;瑝K是按照程序中指定的增量來(lái)移動(dòng)的。例如,如果用戶指定此滑塊的范圍是5,則滑塊只能有6個(gè)位置:在滑塊控件最左邊的一個(gè)位置和另外5個(gè)此范圍內(nèi)每隔一個(gè)增量的位置。通常,這些位置都是由相應(yīng)的刻度線來(lái)標(biāo)識(shí)的。編輯pptMFC的CSliderCtrl類提供了滑塊控件的各種操作函數(shù),常用的函數(shù)原型有:形式:intSetPos(intnPos);

說(shuō)明:設(shè)置滑塊控件的當(dāng)前位置。形式:voidSetRange(intnMin,intnMax,BOOLbRedraw=FALSE);

說(shuō)明:設(shè)置滑塊控件的上下限。形式:BOOLSetTic(intnTic);

說(shuō)明:設(shè)置滑塊控件中的一個(gè)刻度線的位置。形式:voidSetTicFreq(intnFreq);說(shuō)明:設(shè)置滑塊控件刻度線的疏密程度。編輯ppt【例7-6】設(shè)計(jì)如圖7.27所示的界面,用滾動(dòng)條、滑塊與旋轉(zhuǎn)按鈕控件來(lái)雕整RGB的三個(gè)顏色分量。

編輯ppt7.5菜單、工具欄與狀態(tài)欄設(shè)計(jì)

1.菜單的設(shè)計(jì)菜單屬于CMenu類。Windows應(yīng)用程序的菜單由兩部分組成:一是主菜單,一般位于頂層;二是彈出菜單,它是單擊主菜單中的菜單項(xiàng)時(shí)彈出的子菜單。

用編輯器設(shè)計(jì)菜單的主要操作有:

(1)顯示菜單——在工作區(qū)中選定“ResourceView”,展開Menu,雙擊其中的IDR_MAINFRAME,可以看到由AppWizard生成的標(biāo)準(zhǔn)菜單。

(2)刪除菜單項(xiàng)——選定菜單項(xiàng),然后按Del鍵。

(3)添加菜單項(xiàng)——雙擊空白菜單框,彈出“MenuItemProperties”,輸入菜單項(xiàng)的標(biāo)題(名稱)。若菜單項(xiàng)有一個(gè)子菜單(單擊會(huì)彈出了一子菜單),則選定“彈出”,否則不要選定“彈出”;要輸入一條分割線,則選定“分隔符”。編輯ppt

(4)熱鍵字符和快捷鍵的設(shè)置——假定菜單項(xiàng)的標(biāo)題是:紅色(&R)\tCTRL+F1,則R設(shè)置為熱鍵字符,CTRL+F1是快捷鍵,\t讓快捷鍵右對(duì)齊。打開Accelerator的資源項(xiàng),雙擊IDR_MAINFRAME,出現(xiàn)快捷鍵資源列表。

(5)使用快捷菜單——快捷菜單是一種浮動(dòng)式的彈出式菜單,當(dāng)用戶按下鼠標(biāo)右鍵時(shí),就會(huì)相應(yīng)地彈出一個(gè)浮動(dòng)菜單,其中提供一個(gè)或多個(gè)與當(dāng)前操作相關(guān)的選項(xiàng)。用資源編輯器和MFC庫(kù)的CMenu::TracePopupMenu函數(shù)可以很容易地創(chuàng)建這樣的菜單,該函數(shù)原型如下:BOOLTracePopupMenu(UNITnFlags,intx,inty,CWnd*pwnd,LPCRECTlpRect=NULL);該函數(shù)用來(lái)顯示一個(gè)浮動(dòng)的彈出菜單,其位置由各參數(shù)決定。其中,nFlags表示菜單在屏幕顯示的位置以及2按鈕的標(biāo)志。編輯ppt2.工具欄的設(shè)計(jì)工具欄是一系列工具按鈕的組合,借助它們可以提高用戶的工作效率。VisualC++6.0系統(tǒng)保存了每個(gè)工具欄相應(yīng)的位圖,其中包括所有按鈕的圖像,而所有的按鈕圖像具有相同的尺寸(16像素寬,15像素高),它們?cè)谖粓D中的排列次序與屏幕上按鈕在工具欄上的次序相同。

(1)使用工具欄編輯器——選擇ResourceView選項(xiàng)卡,雙擊“Toolbar”項(xiàng)中的IDR_MAINFRAME,打開工具欄編輯器。

(2)工具欄和菜單相結(jié)合——工具欄和菜單相結(jié)合是指當(dāng)選擇工具按鈕或菜單命令時(shí),操作結(jié)果是一樣的。使它們結(jié)合的具體方法是在工具按鈕的屬性對(duì)話框中將按鈕的ID號(hào)設(shè)置為相關(guān)聯(lián)的菜單項(xiàng)ID。編輯ppt7.6文檔/視圖結(jié)構(gòu)應(yīng)用程序

文檔:用于管理應(yīng)用程序的數(shù)據(jù)視圖:用戶界面,用于顯示、打印文檔中的數(shù)據(jù),管理與用戶的交互。數(shù)據(jù)的管理與顯示分離的思想簡(jiǎn)化了開發(fā)過(guò)程文檔/視圖結(jié)構(gòu)應(yīng)用程序:SDI與MDI

【例7-7】利用APPWizard創(chuàng)建一個(gè)類似Windows記事本程序。編輯ppt分析:1.利用Appwizard創(chuàng)建一個(gè)SDI程序框架時(shí),在向?qū)У诹街袑⒁晥D類的基類

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論