查看單個文章
舊 2006-05-18, 07:28 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 Windows SDK編程之基本結構

Windows SDK編程之基本結構1

一、概述

  Windows程序具有相對固定的結構,對編寫者而言,不需要書寫整個程序,大部分程序由系統完成。程序中只要按一定的格式填寫系統留給客戶的那一小部分。

  所需要完成的有:

  視窗類的定義、視窗的建立、消息函數的書寫、消息循環。

  二、消息處理函數

  Windows程序是事件驅動的,對於一個視窗,它的大部分例行維護是由系統維護的。沒個視窗都有一個消息處理函數。在消息處理函數中,對傳入的消息進行處理。系統內還有它自己的預設消息處理函數。

  客戶寫一個消息處理函數,在視窗建立前,將消息處理函數與視窗關聯。這樣,每當有消息產生時,就會去使用這個消息處理函數。

  通常情況下,客戶都不會處理全部的消息,而是只處理自己感興趣的消息,其他的,則送回到系統的預設消息處理函數中去。

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case ...
...
case ...
...

}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}

  三、視窗的建立

  客戶需要自己建立視窗,建立後會得到系統返回的視窗關鍵句(HWND),後繼的針對視窗的操作都針對關鍵句進行。

  1.註冊視窗類

  建立視窗前,需要制定好這個視窗的相關內容,最主要的就是將自己定義的消息處理函數與視窗關聯,其他的內容還包括:表單、圖示等等。

  這個內容指定步驟是通過指定"視窗類"來完成的。

  對於自己建立的視窗,這個"視窗類"需要自己制定,也即自己填充一個WNDCLASS結構,然後向系統註冊。

  對於一些特殊視窗,如按鈕等控件,他們的行為是系統制定好了的,所以不需要自己註冊,直接使用對應的「視窗類」名稱就行了。

  2.建立視窗

  建立視窗時,註冊的"視窗類"名稱作為參數傳入。

  這樣,當有針對該視窗的消息時,將使用「視窗類」中指定的消息處理函數,在其中得到處理。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次