17、Windows API 圖形化使用者介面(1)

來源:互聯網
上載者:User

一、基本概念

Windows的使用者介面分為兩個部分:字元圖形介面和圖形化使用者介面。字元圖形介面較為簡單,主要內容包括如何在介面上讀取使用者輸入,如何向介面終端輸出資訊。如何控制介面的字型、背景、顏色等。

字元介面的人機互動介面只有一種,稱作控制台( Console)。使用者通過控制台嚮應用程式輸入命令和資料,應用程式將運行結果或提示資訊等顯示在控制台上。如cmd.exe。

字元介面應用程式的所有輸入和輸出都是通過Console,字元介面相關的API函數都是通過Console的控制代碼來Operations 主控台的。

Console控制代碼分為兩種,標準輸入(Stand In)控制代碼和標準輸出(Stand Out)控制代碼,分別用於從介面上讀取輸入和向介面輸出。

大多數情況下,字元介面應用程式都只有一個控制台視窗,其標準輸入控制代碼和標準輸出控制代碼都代表了這個控制台。然而它們確實是兩個控制代碼,所能進行的操作和許可權是不一樣的。如果使用“標準輸入控制代碼”作為參數,調用WriteConsole等用於控制台輸出的API函數是會產生錯誤的。

1、字元格(Cell)

    控制台的最小單元是字元格。一個字元格可以放置一個字元。字元格是對控制台進行操作的最小單元。所有的屬性修改操作也都是以字元格為單位的。

    實際上,類似於printf等標準C函數在Windows系統中都是通過系統的動態連結程式庫crtdll.dll匯出,printf函數的實現也位於crtdll.dll中,分析printf等函數的實現代碼可以發現,在Windows平台上,實際printf函數在做了格式化字串的處理後,是調用WriteConsole等API函數進行介面操作的。

2、控制檯子系統

    Windows系統的應用程式分別運行於若干子系統。其中Windows和Consle是兩個最常用到的子系統,圖形化使用者介面的程式運行於Windows子系統,控制台介面的程式運行於Consle子系統。圖形化使用者介面的應用程式視窗是由應用程式調用API函數建立的,而控制台應用程式的控制台介面並不需要應用程式建立,系統會為其自動建立。

3、控制台讀寫

    使用Windows API向控制台寫入資料獲從控制台擷取輸入的過程如下:

◇使用GetStdHandle函數擷取本應用程式的控制台標準輸入、輸出控制代碼(當然需要本應用程式是一個控制台程式,具有一個控制台。控制台程式在連結時需要選擇子系統為CONSOLE,連結選項:/SUBSYSTEM:CONSOLE)。

◇以標準輸出控制代碼為參數,調用WriteConsole API寫入輸出。

◇以標準輸入控制代碼為參數,調用ReadConsole API讀取輸入。

範例程式碼

更多Consoles and Character-Mode Support,可以參見[1,2]。

[1] 精通Windows API 函數、介面、編程執行個體

[2] http://msdn.microsoft.com/en-us/library/ms682010%28VS.85%29.aspx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.