影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

標(biāo)題: win32學(xué)習(xí)初級(jí)二 [打印本頁(yè)]

作者: 重新來(lái)過(guò)    時(shí)間: 2006-11-11 18:45
標(biāo)題: win32學(xué)習(xí)初級(jí)二
今天講軟件流程。呵呵 似乎有點(diǎn)慌點(diǎn)大家了
我講的軟件流程不是開(kāi)發(fā)流程請(qǐng)注意
一個(gè)軟件,表面上看是個(gè) XX.exe文件。雙擊他運(yùn)行后,就會(huì)出現(xiàn)業(yè)務(wù)畫(huà)面。
上面有按鈕(buton),編輯框(textbox)等,操作任何對(duì)象多有不同的響應(yīng),這些如何實(shí)現(xiàn)?
下面我得說(shuō)說(shuō)事件驅(qū)動(dòng)。什么是事件驅(qū)動(dòng)?
舉個(gè)簡(jiǎn)單的例子。我們摁下鍵盤(pán),系統(tǒng)就會(huì)產(chǎn)生一個(gè)鍵盤(pán)響應(yīng)事件。單擊鼠標(biāo)健也會(huì)產(chǎn)生響應(yīng)事件,這么說(shuō)還是有點(diǎn)模糊,(抱歉?jìng)(gè)人文筆能力有限,不知道該如何解釋了),說(shuō)白了吧,整個(gè)軟件就是個(gè)事件驅(qū)動(dòng)組成的。
舉個(gè)簡(jiǎn)單的例子,我們單擊一個(gè)按鈕,軟件怎么知道用戶做了什么。首先操作系統(tǒng)接收到鼠標(biāo)單擊事件的消息,把他放在消息隊(duì)列中,然后系統(tǒng)從消息隊(duì)列中取出消息,對(duì)他進(jìn)行過(guò)濾,過(guò)濾操作是很有必要的,因?yàn)橛行┎僮鲿r(shí)用戶不想要的,或者是系統(tǒng)未定義的事件消息,不把他過(guò)濾掉,系統(tǒng)將無(wú)法處理,這是就會(huì)出現(xiàn)系統(tǒng)bug,那么系統(tǒng)怎么知道我們是對(duì)那個(gè)窗體或軟件發(fā)出的事件消息呢,這是系統(tǒng)會(huì)把事件消息發(fā)給,當(dāng)前活動(dòng)窗體以及具有活動(dòng)線程(一般是后臺(tái)線程),再由這些窗體或軟件自己去過(guò)濾這些消息,如果是自己需要的就做出響應(yīng)。這里我們可以理解 當(dāng)前活動(dòng)窗口,只是活動(dòng)線程有點(diǎn)模糊。另外在說(shuō)明點(diǎn),不是所有活動(dòng)線程(后臺(tái)運(yùn)行,以下不作解釋)多能捕作事件響應(yīng),我們只是在里面做自己想要得事件響應(yīng)過(guò)濾。打個(gè)比方吧,我們常用的金山詞霸,把他隱藏后,為什么我們摁下某些鍵后能打開(kāi)畫(huà)面呢?這就是事件驅(qū)動(dòng)的原因。
由于個(gè)人表達(dá)能力有限,上面的東東,只能這么講了,不懂沒(méi)關(guān)系,以后我們用例子來(lái)說(shuō)事,上面只是讓你們有個(gè)概念上的認(rèn)識(shí)。
下面來(lái)講win32
首先區(qū)分以下asc和unicode,當(dāng)初我學(xué)習(xí)是對(duì)這兩個(gè)概念,有點(diǎn)轉(zhuǎn)牛角尖,將以大家別把太多時(shí)間放在這上面,他們本質(zhì)上是一樣的。簡(jiǎn)單的說(shuō)。asc只能符合美國(guó)的需求,但是不符合別的國(guó)家,尤其是亞洲國(guó)家的要求。怎么說(shuō)呢。asc是8位編碼方式,而unicode 是16位編碼方式,據(jù)說(shuō)unicode能表達(dá)所有的字符,比如漢字,鮮文,還有變異的漢子---日文(據(jù)說(shuō)是日本文的祖先太笨,以至于沒(méi)學(xué)好漢文。)等。對(duì)這這兩個(gè)概念大家只要知道這些就夠了,沒(méi)必要再去上網(wǎng)查。然后來(lái)這里和我較真。
然后將將一些概念,
句柄:句柄是什么東西?其實(shí)他的概念和int,long,char一樣也是關(guān)鍵字,不過(guò)不是c/c++的關(guān)鍵字阿,如hwnd,hanlde.uint等這些關(guān)鍵字有什么用,它們之間有關(guān)聯(lián)么。這些概念先不講。準(zhǔn)備以在代碼中給大家講,個(gè)人感覺(jué)這樣形象點(diǎn)。
下面就是個(gè)簡(jiǎn)單的win32 函數(shù)
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
        // TODO: Place code here.

        return 0;
}
在有些書(shū)里面 把 int APIENTRY 定義為WINAPI或其他的什么的,其實(shí)多一樣,無(wú)非是一些宏
上面就是個(gè)WIN32主函數(shù),相當(dāng)于我們以前常見(jiàn)的MAIN函數(shù)
我們?cè)谶@個(gè)函數(shù)里要做的就是窗體的注冊(cè)與顯示,以及其他空間的繪制等。
然后就是事件消息的獲得,但是不在這里處理消息。我們把消息發(fā)給專門(mén)的消息處理函數(shù),上面沒(méi)有顯示,今天不講這些。

我先將如何去看這些所謂的關(guān)鍵字,英文好的朋友注意了。
HINSTANCE  H------INSTANCE  :H handle的縮寫(xiě),INSTANCE:中文意思就是實(shí)例,白話就是實(shí)際的東西。有什么用,在以后的代碼我們慢慢去發(fā)現(xiàn)吧。
LPSTR  L----P----STR:L Long, P  Point, STR string(字符串)   
沒(méi)價(jià)漢字注視的地方應(yīng)該能看懂吧----------
然后將將參數(shù)意義,英文好的朋友注意。
第一個(gè)參數(shù)有用,怎么用以后將。
第二個(gè)參數(shù)沒(méi)用,給他一個(gè)NULL值就可以
第三個(gè)參數(shù)有用,怎么用看看字面意思
第四個(gè)同上
還有上面的函數(shù)名WinMain 建議大家不要自做聰明去修改他。一直以來(lái)人們多這么用它。
好了 感覺(jué)寫(xiě)的挺多,不知道你們感覺(jué)怎么樣,呵呵
明天有時(shí)間的話,給你們寫(xiě)一個(gè)能運(yùn)行的簡(jiǎn)單畫(huà)面程序的文章
作者: iwxiaot    時(shí)間: 2006-11-12 09:38
問(wèn)下,那些MFC的函數(shù)你是怎么都記會(huì)的,用MSDN嗎
作者: 重新來(lái)過(guò)    時(shí)間: 2006-11-12 13:29
呵呵沒(méi)有人會(huì)去記那些函數(shù)!經(jīng)常用就記住了,而且函數(shù)命名和他 的用途有關(guān)聯(lián)的,比方說(shuō),IsNumeric,GetDlgItem,SetDlgItemText,等。
        我想要是程序員要用自己的腦子來(lái)記函數(shù)的話,你就是學(xué)個(gè)vb光是函數(shù)就得記上半年。
       交給你一個(gè)方法。比方說(shuō)我現(xiàn)在是用c++作開(kāi)發(fā),我想獲得窗口句柄。怎么辦,很簡(jiǎn)單,在Msdn里面輸入Get回車(chē)后就會(huì)出現(xiàn)很多取得屬性的方法。然后你在慢慢刨。如果是經(jīng)驗(yàn)者,很快就會(huì)查到自己需要的函數(shù)。拋棄c++不說(shuō),現(xiàn)在其他語(yǔ)言之間有很多的共性。什么類,屬性,方法多時(shí)一樣的,沒(méi)有什么本質(zhì)區(qū)別。比方說(shuō)在vb里我們用caption來(lái)記錄文本,在vb.net里面已經(jīng)把caption 給拋棄,我想不至于傻到不認(rèn)識(shí)text的地步吧,更不至于不理解text是什么意思的地步吧
學(xué)習(xí)mfc先學(xué)類庫(kù),每個(gè)類庫(kù)是怎么用,他有哪些事件驅(qū)動(dòng),然后就是用程序?qū)崿F(xiàn)他。
作者: iwxiaot    時(shí)間: 2006-11-13 18:20
那還不是得記那些類,唉,只有邊學(xué)邊記了
作者: showcan112233    時(shí)間: 2006-11-13 20:25
標(biāo)題: 狂頂
狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂




歡迎光臨 電子科大論壇-非清水河畔 (http://www.hallmarkedu.com/) Powered by Discuz! X3.4