欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: WinCE編程基礎:Windows 應用程序相關概念剖析 [打印本頁]

作者: srvee    時間: 2012-3-7 09:43
標題: WinCE編程基礎:Windows 應用程序相關概念剖析

  WinCE編程基礎:Windows 應用程序相關概念剖析

  前言

  對于很多研發基于嵌入式的操作系統(Windows CE 6.0)的編程人員來說,了解WinCE編程基礎知識是十分必要的,那么,WinCE編程基礎有哪些呢?小編通過搜集整理資料,對有關WinCE編程基礎中應用程序的相關概念作了簡單介紹,并以一個完整的WinCE 應用程序:Hello3為例,詳細介紹了有關窗口類的知識(Windows CE系統)。

  Windows 應用程序剖析(Windows CE版本)

  Windows程序使用"Push"(推)模式編程.在這種模式下,必須編寫程序來響應來自操作系統的通知,比如一個鍵被壓下去了或者收到一個重繪屏幕的命令.Windows應用程序并不從操作系統請求輸入,而是由操作系統通知應用程序輸入產生了.操作系統通過發送消息(messages)給應用程序窗口來完成這些通知.所有窗口都是窗口類的具體實例.

  Windows 應用程序剖析幾個概念

  窗口類

  窗口是屏幕上的一個區域,一般是矩形.窗口有一些基本參數,比如位置參數x,y和z(窗口在屏幕其它窗口之上或者之下),可視性以及層次關系等.每個被創建的窗口都是窗口類的一個具體實例.窗口類是一個模板,為該類的所有窗口定義了許多共同屬性.換句話說,屬于同一個類的窗口有同樣的屬性.這些共享的屬性中最重要的是窗口過程.

  窗口過程

  窗口過程定義了同一個類里所有窗口的行為.窗口過程處理發到窗口的所有通知和請求.這些通知,要么是操作系統發給窗口,告訴窗口有事件發生,窗口必須回應,要么是其他窗口發來的,向該窗口查詢信息.這些通知是以消息的形式發送的.消息實際就是對窗口過程的一次調用,帶有參數指出通知或者查詢的種類.當有事件發生,例如窗口被移動,被改變大小或有鍵被按下去等,就會發送消息.標識消息的值由Windows定義.應用程序使用預定義好的常量,例如WM_CREATE和WM_MOVE,來表示消息.因為有很多消息可被發送,所以當窗口類對某個消息沒有特殊處理的必要時,Windows提供了一個默認處理函數來處理傳遞這些消息.

  消息生命周期

  Windows是如何協調發到系統里各個窗口的各種消息的Windows監視系統的所有輸入,例如鍵盤,鼠標,觸摸屏以及其它可以產生影響窗口的事件的硬件.當事件發生后,消息就被構成并定向給特定的窗口.Windows沒有直接調用窗口過程,而是加了一個中間步驟.消息被放到擁有該窗口的應用程序的消息隊列里了.當應用程序準備接收消息的時候,它把消息從隊列里取出來,并告訴Windows發送該消息到應用程序適當的窗口上.

  具體步驟為:

  1,當事件發生,Windows就構成一個消息并放到擁有目的窗口的應用程序的消息隊列里.和在XP里一樣,在Windows CE中,每個應用程序有自己單獨的消息隊列(在Windows3.1及更早的Windows版本中,只有唯一一個系統范圍內的消息隊列).事件發生及構成一個消息都要比應用程序處理它們的速度快.消息隊列允許Windows在運做中設置一個通知并繼續完成其它任務,而不是僅僅限制在只響應收到消息的這個應用程序.

  2,應用程序把消息從消息隊列中移除出來,并回調Windows來處理消息.應用程序從隊列里獲取消息,這使得應用程序在請求Windows把消息分派到相應窗口之前,可以預處理這些消息.許多情況下,應用程序會調用Windows里不同的函數來處理具體的各種消息.

  3,Windows處理消息,更確切的說,是Windows調用相應的窗口過程.沒有讓應用程序直接調用窗口過程,而是間接調用,這允許Windows協調這個窗口過程的調用與系統里的其它事件.雖然此刻消息并不在另外一個隊列里,但Windows在調用窗口過程之前,可能需要做一些預處理.不管怎樣,這種調度方式減少了應用程序的責任,不用程序去決定適當的目的窗口,而是由Windows負責了.

  4,窗口過程處理消息.

  所有的窗口過程都有相同的調用參數:被調用的窗口實例的句柄,消息參數,兩個普通參數,包含與消息相關的數據.窗口過程用窗口句柄區分窗口的每個實例.消息參數,指明窗口必須響應的事件.兩個普通包含與消息相關的數據.例如,WM_MOVE消息指出窗口將被移動,其中一個普通參數指向一個包含窗口新坐標的結構.

  一個完整的WinCE 應用程序:Hello3

  Hello3有著相同的入口點--WinMain.但是因為Hello3創建了自己的窗口,所以它必須為主窗口注冊一個窗口類,創建窗口并且提供一個消息循環來為窗口處理消息.下面詳細描述注冊窗口類基礎知識。

  本文來自: 賽微電子網-電子工程師社區 原文地址:http://www.srvee.com/embed/apply/WinCEbcjc_Windows_yycxxggnpx_66931.html






歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1