1. Windows應用程序,操作系統,計算機硬件之間的相互關系: 箭頭③對應API的調用 箭頭④對應操作系統返回事件給應用程序 2. 操作系統充當的角色 操作系統負責管理外圍設備,同時與上層的應用程序交互。而應用程序只需要調用相應的API就能實現對外圍設備的操作。操作系統充當一個中間角色。 3. API 應用程序是以函數調用的方式來通知操作系統執行相應的功能的。操作系統所能夠完成的每一個特殊功能通常都有一個函數與其對應。操作系統把它所能夠完成的功能以函數的形式提供給應用程序使用,應用程序對這些函數的調用就叫做系統調用,這些函數的集合就是Windows操作系統提供給應用程序編程的接口(Application Programming Interface),簡稱Windows API。如CreateWindow就是一個API函數,應用程序中調用這個函數,操作系統就會按照該函數提供的參數信息產生一個相應的窗口。 4. 消息和消息隊列 Windows程序是以事件驅動方式運行的,主要是基於消息。操作系統將每個感知的事件都包裝成一個稱為消息的結構體MSG來傳遞給應用程序。MSG結構如下示: [cpp] typedef struct tagMSG { HWND hwnd; //一個消息總是與某個窗體相關聯的 UINT message; //消息標識符,數值,對應WM_XXX的宏 WPARAM wParam; //附加消息 LPARAM lParam; //附加消息 DWORD time; //投遞時間 POINT pt; //鼠標當前位置 } MSG; 而應用程序則循環不斷地從消息隊列中取出消息,並進行響應,這就是消息機制。 注意到,操作系統為不同類型的應用程序維護不同的消息隊列。消息也分進隊和不進隊消息,進隊的消息由系統放入到應用程序的消息隊列中,不進隊的消息在系統調用窗口過程時直接發送給窗口。不管是進隊還是不進隊消息,最終都由系統調用窗口過程函數對消息進行處理。