|
|
今天講軟件流程。呵呵 似乎有點慌點大家了
我講的軟件流程不是開發(fā)流程請注意
一個軟件,表面上看是個 XX.exe文件。雙擊他運行后,就會出現(xiàn)業(yè)務畫面。
上面有按鈕(buton),編輯框(textbox)等,操作任何對象多有不同的響應,這些如何實現(xiàn)?
下面我得說說事件驅動。什么是事件驅動?
舉個簡單的例子。我們摁下鍵盤,系統(tǒng)就會產生一個鍵盤響應事件。單擊鼠標健也會產生響應事件,這么說還是有點模糊,(抱歉個人文筆能力有限,不知道該如何解釋了),說白了吧,整個軟件就是個事件驅動組成的。
舉個簡單的例子,我們單擊一個按鈕,軟件怎么知道用戶做了什么。首先操作系統(tǒng)接收到鼠標單擊事件的消息,把他放在消息隊列中,然后系統(tǒng)從消息隊列中取出消息,對他進行過濾,過濾操作是很有必要的,因為有些操作時用戶不想要的,或者是系統(tǒng)未定義的事件消息,不把他過濾掉,系統(tǒng)將無法處理,這是就會出現(xiàn)系統(tǒng)bug,那么系統(tǒng)怎么知道我們是對那個窗體或軟件發(fā)出的事件消息呢,這是系統(tǒng)會把事件消息發(fā)給,當前活動窗體以及具有活動線程(一般是后臺線程),再由這些窗體或軟件自己去過濾這些消息,如果是自己需要的就做出響應。這里我們可以理解 當前活動窗口,只是活動線程有點模糊。另外在說明點,不是所有活動線程(后臺運行,以下不作解釋)多能捕作事件響應,我們只是在里面做自己想要得事件響應過濾。打個比方吧,我們常用的金山詞霸,把他隱藏后,為什么我們摁下某些鍵后能打開畫面呢?這就是事件驅動的原因。
由于個人表達能力有限,上面的東東,只能這么講了,不懂沒關系,以后我們用例子來說事,上面只是讓你們有個概念上的認識。
下面來講win32
首先區(qū)分以下asc和unicode,當初我學習是對這兩個概念,有點轉牛角尖,將以大家別把太多時間放在這上面,他們本質上是一樣的。簡單的說。asc只能符合美國的需求,但是不符合別的國家,尤其是亞洲國家的要求。怎么說呢。asc是8位編碼方式,而unicode 是16位編碼方式,據(jù)說unicode能表達所有的字符,比如漢字,鮮文,還有變異的漢子---日文(據(jù)說是日本文的祖先太笨,以至于沒學好漢文。)等。對這這兩個概念大家只要知道這些就夠了,沒必要再去上網查。然后來這里和我較真。
然后將將一些概念,
句柄:句柄是什么東西?其實他的概念和int,long,char一樣也是關鍵字,不過不是c/c++的關鍵字阿,如hwnd,hanlde.uint等這些關鍵字有什么用,它們之間有關聯(liá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ù),相當于我們以前常見的MAIN函數(shù)
我們在這個函數(shù)里要做的就是窗體的注冊與顯示,以及其他空間的繪制等。
然后就是事件消息的獲得,但是不在這里處理消息。我們把消息發(fā)給專門的消息處理函數(shù),上面沒有顯示,今天不講這些。
我先將如何去看這些所謂的關鍵字,英文好的朋友注意了。
HINSTANCE H------INSTANCE :H handle的縮寫,INSTANCE:中文意思就是實例,白話就是實際的東西。有什么用,在以后的代碼我們慢慢去發(fā)現(xiàn)吧。
LPSTR L----P----STR:L Long, P Point, STR string(字符串)
沒價漢字注視的地方應該能看懂吧----------
然后將將參數(shù)意義,英文好的朋友注意。
第一個參數(shù)有用,怎么用以后將。
第二個參數(shù)沒用,給他一個NULL值就可以
第三個參數(shù)有用,怎么用看看字面意思
第四個同上
還有上面的函數(shù)名WinMain 建議大家不要自做聰明去修改他。一直以來人們多這么用它。
好了 感覺寫的挺多,不知道你們感覺怎么樣,呵呵
明天有時間的話,給你們寫一個能運行的簡單畫面程序的文章 |
評分
-
1
查看全部評分
-
|