久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 從零開始學(xué)VC系列教程 一.信息顯示實(shí)驗(yàn) [打印本頁]

作者: meranda    時(shí)間: 2008-10-31 18:11
標(biāo)題: 從零開始學(xué)VC系列教程 一.信息顯示實(shí)驗(yàn)
       題外話:第一次寫教程,不知道該怎么開始.以前見過的教程可能都會介紹比較多的理論然后才開始講實(shí)際操作,我想對于VC,理論講得太多大家可能更糊涂,所以選擇了這個(gè)方案,我們先一步步照著做,每一次只介紹一兩個(gè)知識點(diǎn),并且把理論放在后面說明,希望大家能喜歡這種方式,并對這種方式提出意見和建議,以便以后章節(jié)更適合大家的學(xué)習(xí).
或許我寫的還不能稱之為教程,只是一些操作步驟及說明,通過這些練習(xí),希望能使大家對VC有一個(gè)新的認(rèn)識.VC的功能是十分強(qiáng)大的,但我們一般并不會用到所有的功能,就像大家熟悉的KeilC一樣,其實(shí)Keil功能也是很多的,平時(shí)也沒見誰把Keil的功能都用到了.基于此,我寫的這個(gè)教程可能在VC專業(yè)人士看來比較簡單.不是要班門弄斧,而是希望推行上位機(jī)技術(shù),形成一個(gè)氛圍讓大家來學(xué)習(xí)交流,PC機(jī)與下位機(jī)結(jié)合畢竟也是發(fā)展的一個(gè)方向.望高手諒解小輩的不自量力.同時(shí),我們結(jié)合單片機(jī)編程,讓大家明白上位機(jī)控制方法及原理,當(dāng)然這是今后章節(jié)的內(nèi)容了.
       本節(jié)內(nèi)容:學(xué)會在文本框中顯示文本,學(xué)會彈出式對話框使用.
       學(xué)習(xí)目的:信息顯示是人機(jī)交互的基礎(chǔ),同時(shí),信息顯示也為以后的程序調(diào)試打下基礎(chǔ).
1.       新建工程.打開VC6.0點(diǎn)擊[文件]->[新建],彈出如下對話框.
在工程選項(xiàng)中選擇MFC AppWizard[exe],選擇好工程存入的位置,然后在工程名稱中填入工程的名稱,例如Eg01,填入Eg01后.VC會在我們選擇的路徑后自動加入一個(gè)以工程名命名的文件夾作為工程目錄.完成按[確定]就會進(jìn)入工程向?qū)?出現(xiàn)以下的提示.

在這個(gè)我們選擇[基于對話框]就行了.單文檔及多文檔方式會在以后詳細(xì)介紹.這里也簡要說明一下.①單文檔.程序一次只能處理一個(gè)文檔對象(文件).像寫字板,記事本等.②多文檔.程序一次可以處理多個(gè)對象(文件),像word之類的,可以同時(shí)打開多個(gè)文件.③基本對話框.程序一般用于處理一些比較小的,工珍具型的軟件.像雙龍的ISP下載軟件, Easy 51Pro等都是基于對話框.一些不是很復(fù)雜的工業(yè)軟件也通常可以用基于對話框的形式,這種方式的優(yōu)點(diǎn)是所見即所得,一些控件可以像VB一樣拖到工作區(qū)就行了.選好以后直接按[完成]就可以了.至于[下一步]的向?qū)?這里我們先不管.然后會進(jìn)入以下的畫面.其中紅色及綠色是我的標(biāo)注,看不清圖片可以下載圖片放大.
選中靜態(tài)文本框[TODO:在這里設(shè)置對話框控制],單擊指標(biāo)右鍵,在彈出的快捷菜單中選擇[屬性Properties]菜單項(xiàng),彈出如下對話框
修改IDC_STATIC為IDC_FIRSTLABEL,標(biāo)題可以寫為”第一個(gè)應(yīng)用程序”然后關(guān)閉這個(gè)對話框,就可以看到剛才的靜態(tài)文本框內(nèi)容變?yōu)椤钡谝粋(gè)應(yīng)用程序”了.

在剛才的操作中,我們將靜態(tài)文本框的ID改為了IDC_FIRSTLABEL,在VC中,ID是控件的標(biāo)志,不能有相同的ID出現(xiàn),但允許多個(gè)名為IDC_STATIC的ID號.所以,一般并不把近件名命為IDC_STATIC,除非以后我們不想在程序中改變這個(gè)控件的屬性.有一些控制,例如GroupBox一般并不在程序中改變什么,所以不改變其ID號.ID是程序訪問控件的標(biāo)識,所以一個(gè)應(yīng)用程序中不能有重復(fù)ID.
按下來我們要添加一個(gè)按鈕.
用鼠標(biāo)將控件條上的按鈕拖到對話框上,可以看到對話框上多了一個(gè)按鈕. 用上敘方法,改變按鈕ID為IDC_BTN1,標(biāo)題改為”顯示”,這樣就做好一個(gè)按鈕了.

下面我們?yōu)榘粹o添加代碼.
雙擊按鈕,會出現(xiàn)以下的提示框.
按[OK]為按鈕添加響應(yīng)函數(shù),出面以下畫面
void CEg01Dlg::OnBtn1()
{
       // TODO: Add your control notification handler code here
      
}
這一段就是剛才按鈕的函數(shù)了.當(dāng)然,現(xiàn)在還沒有響應(yīng).現(xiàn)在我們添加一個(gè)事件,讓這個(gè)按鈕按下后上面的靜態(tài)文本框的內(nèi)容變?yōu)椤贝谔?COM1 波特率:57600”把上面的代碼改為
void CEg01Dlg::OnBtn1()
{
       // TODO: Add your control notification handler code here
       SetDlgItemText(IDC_FIRSTLABEL,” 串口號:COM1 波特率:57600”);
}
添加完成以后,按F7編譯.如果編譯通過,按F5運(yùn)行,可以看到程序運(yùn)行后的對話框
按下按鈕,可以看到上面的靜態(tài)文本框的內(nèi)容改變了.那么恭喜你,完成我們這個(gè)例子的第一步操作了.
當(dāng)然,我這里的對話框看起來沒那么高,大家可以調(diào)一下高度.怎么退回到控件編輯狀態(tài)呢?
首先,我們單擊選項(xiàng)卡中的[ResorceView],現(xiàn)在大家只能看到[Reso…]看到IDD_EG01_DIALG了吧,這個(gè)其實(shí)也是一個(gè)ID,是我們對話框的ID,如果大家改一下對話框的ID,就可以看到這里的ID也變了.在VC中,所有的控件都認(rèn)為是窗體,只是形式不同.雙擊IDD_EG01_DIALG就可以看到我們剛才的控制編輯狀態(tài)了.雙擊[顯示]按鈕又可以回到代碼狀態(tài).
剛才的例子很簡單,卻是我們以后會用得最多的.下面我們來分析一下代碼
void CEg01Dlg::OnBtn1()
{
       // TODO: Add your control notification handler code here
       SetDlgItemText (IDC_FIRSTLABEL,” 串口號:COM1 波特率:57600”);
}
看看SetDlgItemText這個(gè)函數(shù),大家就會明白了, IDC_FIRSTLABEL是我們給靜態(tài)文本框分配的ID,后面的參數(shù)是要顯示的內(nèi)容.上面我們提到過,VC中的控件都認(rèn)為是窗體,所以,對于所有的文本顯示,我們都可以用這個(gè)函數(shù)來做,大家可以試著加入一個(gè)編輯框(Edit),同樣可以使用用這個(gè)函數(shù),只要ID號對了就可以了.VC對大小寫敏感,大家要注意大小寫.
下面我們用另一個(gè)方法來實(shí)現(xiàn).
把代碼改為
void CEg01Dlg::OnBtn1()
{
       // TODO: Add your control notification handler code here
       CString a;
a=” 串口號:COM1 波特率:57600”;
SetDlgItemText (IDC_FIRSTLABEL,a);
}
然后按F7編譯,無誤則按F5運(yùn)行.可以看到運(yùn)行結(jié)果是一樣的.
大家可以看到,我們把變量a定義為CString類型,這個(gè)類型我們在C中可能沒有見過.CString
其實(shí)是VC中的一個(gè)類.這里我們要引入類的概念了.類跟C語言結(jié)構(gòu)體很像,結(jié)構(gòu)體可以有成員變量,但不能有成員函數(shù),類不但可以有成員變量,還可以有成員函數(shù),并且支持多種方法.在VC中,類以class標(biāo)識.下面是一個(gè)類的定義,我們來分析一下.
class CEg01Dlg : public CDialog
{
public:
       CString GetPath(void);
protected:
       int GetMax(int a,int b);
public:
       int a;
       int b;
};
這個(gè)類是我改過的,為了大家看得明白一點(diǎn).首先,我們從這句class CEg01Dlg : public CDialog知道這個(gè)類名是CEg01Dlg,那么public后面的CDialog是什么意思呢?CDialog其實(shí)也是一個(gè)類,是VC中標(biāo)準(zhǔn)對話框類. public CDialog意思是我們定義的這個(gè)類CEg01Dlg從CDialog派生,也叫從CDialog繼承,從繼承這個(gè)詞語大家就會明白CEg01Dlg不但可以有自身函數(shù),而且還可以用到CDialog里的變量及函數(shù),所以說是繼承,就像我們說的繼承財(cái)產(chǎn)一樣,兒子不但可以有自己的錢,還有從老爸那里繼承的產(chǎn)財(cái),這些錢都能花.所以,我們也叫CDialog為父類(不是爸類啊),把CEg01Dlg稱為子類.當(dāng)然,這是相對的.如果再定義一個(gè)類從CEg01Dlg派生,那么CEg01Dlg也就是父類,派生出來的類就是子類.這段可能有點(diǎn)難明白,大家可以慢慢體會.我們再回到CString上面來,這個(gè)類不是派生的,所以也沒有父類了.用CString定義一個(gè)變量a,我們稱為類變量,CString有很強(qiáng)大的功能,我們這里只用到一個(gè)功能,就是字符串,a可以是一個(gè)不定長度的字符串,所以我們可以給a賦一個(gè)任意的字符串而不用關(guān)心長度.當(dāng)然,我們也可以用int StringLen=a.GetLength();來獲得這個(gè)字符串的長度.從這句可以看到,GetLength()是類CString里的一個(gè)函數(shù).大家可能又會關(guān)心一個(gè)問題,怎么把長度顯示出來呢?我們把代碼改為
void CEg01Dlg::OnBtn1()
{
       // TODO: Add your control notification handler code here
       CString a;
       a=" 串口號:COM1 波特率:57600";
       SetDlgItemText (IDC_FIRSTLABEL,a);
       a.Format("字符串的長度:%d",a.GetLength());
       MessageBox(a);
}
運(yùn)行一下,效果如下
這里我們用到了類Cstring的另一個(gè)成員函數(shù)Format();這個(gè)函數(shù)用起來跟C語言里的Printf()很像,我就不多說明了.格式化后的字符串還是存放在a中,在這里,我們還用到了一個(gè)新的函數(shù)MessageBox();我們只是用了這個(gè)函數(shù)最簡單的用法,顯示一個(gè)字符串.MessageBox用于彈出一個(gè)提示對話框.查查MSDN就知道,函數(shù)原型是
int MessageBox( LPCTSTR lpszText, LPCTSTR lpszCaption = NULL, UINT nType = MB_OK );
在VC里面,函數(shù)可以有默認(rèn)值,例如LPCTSTR lpszCaption = NULL, UINT nType = MB_OK變量lpszCaption的默認(rèn)值是NULL, nType的默認(rèn)值是MB_OK,這些有默認(rèn)值的變量我們可以不傳值,所以這個(gè)函數(shù)使用時(shí),最簡單的用法就是傳lpszText就可以了.如果我們要顯示一個(gè)固定的字串,可以這樣調(diào)用MessageBox(“大家好”);是不是很簡單啊?
這一章就寫到這里了,一些問題大家可以提.未盡知識點(diǎn),會在以后再詳細(xì)介紹.




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人在线黄色 | 日韩中文字幕第一页 | 四虎影库 | 成人免费视频观看视频 | 日韩成人小视频 | 在线免费av网站 | 毛片在线免费播放 | 色天天综合 | 日韩成人在线播放 | 亚洲黄色天堂 | 五月天黄色网 | 97视频网站 | 欧洲色综合 | 国产伦理一区二区 | 国产免费成人 | 亚洲欧美日韩一区 | 蜜臀久久99精品久久久久宅男 | 中文字幕日韩一区 | 精品伊人久久 | 免费看91| 深夜视频在线观看 | 99re国产| 女人av在线 | 婷婷av在线 | 日本人做爰全过程 | 四虎影视最新网址 | 中文字幕在线观看日本 | 亚洲另类色图 | 91啪国产| 成人高清免费 | 视频一区在线观看 | 亚洲影视在线 | 亚洲另类视频 | 超碰在线中文字幕 | 婷婷久久综合 | 中文字幕精品在线观看 | 99久久99 | 17c在线| 又黄又爽又刺激的视频 | 成人免费视频播放 | 成人免费看片98欧美 |