第18 章进入Windows API.pptVIP

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
新觀念的 VB6 教本 第18 章 進入 Windows API 使用 Windows API 的基本觀念(1) Windows 這個多工作業系統除了協調應用程式的執行、分配記憶體、管理系統資源…之外,她同時也是一個很大的服務中心,呼叫這個服務中心的各種服務(每一種服務就是一個函數),可以幫應用程式達到開啟視窗、描繪圖形、使用周邊設備…等目的,由於這些函數服務的對象是應用程式(Application),所以便稱之為 Application Programming Interface,簡稱 API 函數。 使用 Windows API 的基本觀念(2) Windows API 是大家的,凡是在 Windows 工作環境底下執行的應用程式,都有權利呼叫 Windows API。 API 與 C 語言最親近,因為 API 函數在參數的傳遞上就是以 C 語言為標準。 如果傳遞的參數是單純的資料型別,例如「整數」,則 VB 與 C 語言還是相通的,如果是特殊的資料型別(包含「字串」),則必須遵循一定的規範,否則便無法得到正確的結果。 物件 vs. handle 除了參數的傳遞方式有所不同之外,要以 VB 程式呼叫 API,還要具備 Windows 程式設計的 handle 觀念。VB 的程式設計模式是以物件為核心,而 Windows 的程式設計模式卻是以 handle 為核心。 物件的呼叫例 vs. handle 的呼叫例 假設有一 VB 的表單 Form1,若以 Vb 的方法來改變此一表單的標題,則是設定表單物件的 Caption 屬性,敘述如下: 若以 API 來執行相同的工作,則敘述如下: 其中 Form1.hWnd (hWnd 是 handle of window 的縮寫)代表的是 Form1 這個表單「視窗」的 handle。 handle 是什麼? Handle 是什麼?讓我們來檢查看看,首先在 SetWindowText 之後增加以下敘述: 結果 TypeName 印出 Long,這表示 handle 的資料型別是 Long,而接下來的 Form1.hWnd 則印出一個整數值。Handle 只是一個整數值嗎?一個整數值能夠做什麼呢? handle 者, 存取 Windows 資源之識別碼(1) 在 Windows 的世界裡,充滿著各種不同的系統資源,例如視窗、功能表、圖片、記憶體、程式、程序…等,都算是系統資源,而 Windows 是這些資源的總管理者,為了能夠管理這些資源,Windows必須給每一個資源一個唯一的識別碼,此一識別碼便稱為 handle。 handle 者, 存取 Windows 資源之識別碼 (2) Windows 世界的 handle 與真實世界的把手在觀念上很類似,由於每一個 handle 都是一個唯一的識別碼,因此當程式要求 Windows 提供存取資源的服務時,須出具此一識別碼,如此 Windows 便可以找到此一識別碼所對應的資源,然後進行存取的工作,所以 handle 雖然只是一個整數值,但它就像是鍋子的把手可用來取用鍋子裡的食物一樣,此一整數值則可用來取用 Windows的系統資源。 handle 者, 存取 Windows 資源之識別碼 (3) Handle 最重要的特性是同一時間不會有兩個資源的 handle 值是相同的,在前面的 SetWindowText API 函數中,程式傳入 Form1 表單視窗的 handle,所以 Windows 便能夠根據此一唯一的 handle 值,取得該 handle 所對應的視窗資源,進而把標題設定給這個視窗。 從 handle 到物件 (1) 對很多 VB 的物件而言,都含有 handle 性質的屬性,如圖: 從 handle 到物件 (2) 當我們使用這類物件時,除了可以利用該物件的屬性及方法來操作物件之外,也可以利用其中 handle 性質的屬性來呼叫 API,直接呼叫 Windows 所提供的服務,以前面的「SetWindowText Form1.hWnd, “新的標題”」為例,hWnd 便是附屬於 Form1 的 handle 性質屬性。 從 handle 到物件 (3) 簡單地說,VB 所提供的物件並沒有把Windows 的 handle 程式設計模式丟到一邊,而是將 handle 封裝起來,使之成為物件的一個屬性。 雖然說 Windows 的程式設計是以 handle為核心,但仍然有不少 API 函數是與handle 無關的,例如字串的複製,這類API 函數通常不會使用到 Windows 所配置的系統資源,所以不需要使用 handle。 18-2 API 函數的宣告 – 開啟 Windows 服務

文档评论(0)

Jermain2014 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档