標籤:des 使用 io strong 檔案 資料 2014 ar
視窗
每個GUI應用程式都有一個視窗,它由多個部分組成。 包括標題列,[a1] 功能表列,客戶區[a2] ,狀態列等
對話方塊是視窗,還是控制項?
視窗類別
每個視窗都對應一個視窗類別。 視窗類別定義了功能表項目,背景,表徵圖,滑鼠指標樣式,和視窗訊息處理函數。 每個視窗類別都對應一個訊息處理函數,即每個視窗都有自己的訊息處理函數。
應用程式在建立視窗前,需向系統註冊視窗類別,或是用系統已定義好的視窗類別。
訊息和訊息處理函數
- 訊息的分類: COMMAND 和 WM_ ,還有一類是通知型的訊息,以及控制項訊息?
-
控制項
控制項,實際是一種特殊的視窗,它是一個子視窗。
Windows控制項分為user controls (使用者控制項) 和 common controls(通用控制項)
Windows控制項被放置在其他動態庫中。如:ComCtl32.dll
應用程式可以直接使用這些控制項而不需要重新定義。
控制項分很多種,常用的包括:
文字框(Edit, RichEdit),
按鈕(Button,Check Boxes,Group Boxes,Push Buttons,Radio Buttons),
下拉式功能表(comboBox),
列表框(List Box),
分組列表(List View),
分頁(Pager),
進度條(Process Bar),
屬性頁面(Property Sheet),
工作條(ToolBar) ,
樹(Tree View)
控制項有特定的視窗樣式,現實設定,和訊息處理過程。 使用控制項時不需要再做訊息處理。
資源
資源是應用程式在運行中可能會使用到的一些資料,標,位元影像,菜單等。
在程式設計時,開發人員可以在資源指令碼(.rc)中配置資源,在程式構建時,資源編譯器會將資源編譯為資源檔(.res) ,然後由連結器將資源連結到可執行檔中。程式在運行中便可以使用這些資源。
GDIDevice Context(DC)
DC是一個結構,它定義了繪圖物件和繪圖物件的屬性,圖形模式。
繪圖物件包括畫筆,畫刷,字型,位元影像,調色盤(Palette),地區(矩形)等/
這些對象都可以使用SelectObject()函數將它們選入DC中。
重載SelectObject()方法,以便接受各種類型對象的指標。
繪圖模式(Graphic Mode)
Windows支援5種圖形模式,允許應用程式指定: 1. 顏色如何合成。 2. 輸出在哪裡出現
- 輸出如何縮放 等
模式被儲存在Device Context(DC)中.
5種模式分別是:
- Background[a3]
- Drawing[a4]
- Mapping[a5]
- Polygon-fill[a6]
- Stretching[a7]
建立對話方塊
方法:
- 通過資源來建立對話方塊,可以使用 CreateDialog , CreateDialogParam , DialogBox , DialogBoxParam 等API宏或函數。
- 不依賴資源,直接建立對話方塊,可以使用:
CreateDialogIndirect , CreateDialogIndrectParam , DialogBoxIndirect,
DialogBoxIndirectParam 等API宏和函數直接建立對話方塊。
對話方塊訊息處理函數:
在建立對話方塊時,需要指明對話方塊訊息處理函數。
如果一個訊息能有對話方塊的訊息處理函數處理,那麼需返回 TRUE
[a1]包括應用程式圖示,視窗標題,最大化,最小化,關閉按鈕。
[a2]客戶區用於放置視窗的功能空間,現實內容等。
[a3]定義存在的視窗或位元影像和文本操作的螢幕顏色如何合成
[a4]與Background相對應,Drawing是定義前景色彩。
[a5]定義輸出的圖形如何從邏輯空間映射到視窗,螢幕,或列印紙
[a6]定義畫刷模式,如何填充複雜地區的內部
[a7]定義位元影像顏色如何被合成