一区二区国产高清视频在线_真人性做爰A片免费_强伦人妻BD在线电影_亚洲熟妇无码AV_免费人成视频在线观看网站_亚洲欧美精品午睡沙发_在线观看无码的免费网站_中文字幕无码A片久久_日韩欧美国产一区精品_久久精品女人天堂av
重慶醫(yī)科大學(xué)論壇
標(biāo)題:
win32學(xué)習(xí)初級二
[打印本頁]
作者:
重新來過
時間:
2006-11-11 18:45
標(biāo)題:
win32學(xué)習(xí)初級二
今天講軟件流程。呵呵 似乎有點慌點大家了
我講的軟件流程不是開發(fā)流程請注意
一個軟件,表面上看是個 XX.exe文件。雙擊他運行后,就會出現(xiàn)業(yè)務(wù)畫面。
上面有按鈕(buton),編輯框(textbox)等,操作任何對象多有不同的響應(yīng),這些如何實現(xiàn)?
下面我得說說事件驅(qū)動。什么是事件驅(qū)動?
舉個簡單的例子。我們摁下鍵盤,系統(tǒng)就會產(chǎn)生一個鍵盤響應(yīng)事件。單擊鼠標(biāo)健也會產(chǎn)生響應(yīng)事件,這么說還是有點模糊,(抱歉個人文筆能力有限,不知道該如何解釋了),說白了吧,整個軟件就是個事件驅(qū)動組成的。
舉個簡單的例子,我們單擊一個按鈕,軟件怎么知道用戶做了什么。首先操作系統(tǒng)接收到鼠標(biāo)單擊事件的消息,把他放在消息隊列中,然后系統(tǒng)從消息隊列中取出消息,對他進行過濾,過濾操作是很有必要的,因為有些操作時用戶不想要的,或者是系統(tǒng)未定義的事件消息,不把他過濾掉,系統(tǒng)將無法處理,這是就會出現(xiàn)系統(tǒng)bug,那么系統(tǒng)怎么知道我們是對那個窗體或軟件發(fā)出的事件消息呢,這是系統(tǒng)會把事件消息發(fā)給,當(dāng)前活動窗體以及具有活動線程(一般是后臺線程),再由這些窗體或軟件自己去過濾這些消息,如果是自己需要的就做出響應(yīng)。這里我們可以理解 當(dāng)前活動窗口,只是活動線程有點模糊。另外在說明點,不是所有活動線程(后臺運行,以下不作解釋)多能捕作事件響應(yīng),我們只是在里面做自己想要得事件響應(yīng)過濾。打個比方吧,我們常用的金山詞霸,把他隱藏后,為什么我們摁下某些鍵后能打開畫面呢?這就是事件驅(qū)動的原因。
由于個人表達(dá)能力有限,上面的東東,只能這么講了,不懂沒關(guān)系,以后我們用例子來說事,上面只是讓你們有個概念上的認(rèn)識。
下面來講win32
首先區(qū)分以下asc和unicode,當(dāng)初我學(xué)習(xí)是對這兩個概念,有點轉(zhuǎn)牛角尖,將以大家別把太多時間放在這上面,他們本質(zhì)上是一樣的。簡單的說。asc只能符合美國的需求,但是不符合別的國家,尤其是亞洲國家的要求。怎么說呢。asc是8位編碼方式,而unicode 是16位編碼方式,據(jù)說unicode能表達(dá)所有的字符,比如漢字,鮮文,還有變異的漢子---日文(據(jù)說是日本文的祖先太笨,以至于沒學(xué)好漢文。)等。對這這兩個概念大家只要知道這些就夠了,沒必要再去上網(wǎng)查。然后來這里和我較真。
然后將將一些概念,
句柄:句柄是什么東西?其實他的概念和int,long,char一樣也是關(guān)鍵字,不過不是c/c++的關(guān)鍵字阿,如hwnd,hanlde.uint等這些關(guān)鍵字有什么用,它們之間有關(guān)聯(lián)么。這些概念先不講。準(zhǔn)備以在代碼中給大家講,個人感覺這樣形象點。
下面就是個簡單的win32 函數(shù)
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
return 0;
}
在有些書里面 把 int APIENTRY 定義為WINAPI或其他的什么的,其實多一樣,無非是一些宏
上面就是個WIN32主函數(shù),相當(dāng)于我們以前常見的MAIN函數(shù)
我們在這個函數(shù)里要做的就是窗體的注冊與顯示,以及其他空間的繪制等。
然后就是事件消息的獲得,但是不在這里處理消息。我們把消息發(fā)給專門的消息處理函數(shù),上面沒有顯示,今天不講這些。
我先將如何去看這些所謂的關(guān)鍵字,英文好的朋友注意了。
HINSTANCE H------INSTANCE :H handle的縮寫,INSTANCE:中文意思就是實例,白話就是實際的東西。有什么用,在以后的代碼我們慢慢去發(fā)現(xiàn)吧。
LPSTR L----P----STR:L Long, P Point, STR string(字符串)
沒價漢字注視的地方應(yīng)該能看懂吧----------
然后將將參數(shù)意義,英文好的朋友注意。
第一個參數(shù)有用,怎么用以后將。
第二個參數(shù)沒用,給他一個NULL值就可以
第三個參數(shù)有用,怎么用看看字面意思
第四個同上
還有上面的函數(shù)名WinMain 建議大家不要自做聰明去修改他。一直以來人們多這么用它。
好了 感覺寫的挺多,不知道你們感覺怎么樣,呵呵
明天有時間的話,給你們寫一個能運行的簡單畫面程序的文章
作者:
iwxiaot
時間:
2006-11-12 09:38
問下,那些MFC的函數(shù)你是怎么都記會的,用MSDN嗎
作者:
重新來過
時間:
2006-11-12 13:29
呵呵沒有人會去記那些函數(shù)!經(jīng)常用就記住了,而且函數(shù)命名和他 的用途有關(guān)聯(lián)的,比方說,IsNumeric,GetDlgItem,SetDlgItemText,等。
我想要是程序員要用自己的腦子來記函數(shù)的話,你就是學(xué)個vb光是函數(shù)就得記上半年。
交給你一個方法。比方說我現(xiàn)在是用c++作開發(fā),我想獲得窗口句柄。怎么辦,很簡單,在Msdn里面輸入Get回車后就會出現(xiàn)很多取得屬性的方法。然后你在慢慢刨。如果是經(jīng)驗者,很快就會查到自己需要的函數(shù)。拋棄c++不說,現(xiàn)在其他語言之間有很多的共性。什么類,屬性,方法多時一樣的,沒有什么本質(zhì)區(qū)別。比方說在vb里我們用caption來記錄文本,在vb.net里面已經(jīng)把caption 給拋棄,我想不至于傻到不認(rèn)識text的地步吧,更不至于不理解text是什么意思的地步吧
學(xué)習(xí)mfc先學(xué)類庫,每個類庫是怎么用,他有哪些事件驅(qū)動,然后就是用程序?qū)崿F(xiàn)他。
作者:
iwxiaot
時間:
2006-11-13 18:20
那還不是得記那些類,唉,只有邊學(xué)邊記了
作者:
showcan112233
時間:
2006-11-13 20:25
標(biāo)題:
狂頂
狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂狂頂
歡迎光臨 重慶醫(yī)科大學(xué)論壇 (http://www.espacio12.com/)
Powered by Discuz! X3.4