win32 5.4 對話框的資源定義

  1. 對話框的格式是:(其中 BEGIN END 用花括號 { } 來代替也行)在這裏插入圖片描述
  2. 其可選屬性爲(大體瞭解一下就好):在這裏插入圖片描述
  3. 代碼解讀:
    在這裏插入圖片描述
    1. 可以看出,其對話框中定義了四組控件,其分別是:圖標、文本、按鈕和一條橫線。
    2. 其中定義的 第三個是 控件的ID,我們在 對話框過程需要處理的:
      1. 因爲除了按鈕,其餘三個都是靜態的,不會發送和接收消息,所以我們不需要控件ID,將其設置爲 -1。
      2. 但是按鈕我們定義爲 IDOK,其作用是:當點擊這個,會發送 WM_COMMAND,其另外的一個參數就是 控件的ID。所以,我們雙判斷就可以判斷出用戶點擊了哪一個空間,然後對其做出處理,如下代碼解讀:在這裏插入圖片描述
      3. 控件ID中有兩個特殊ID,其是 IDOK和IDCANCEL,其在 resource.h 中定義的值爲 1 和 2:
        1. IDOK 默認是 “確定”,當然其名字可以任何對用,當焦點沒有停留在其他按鈕上,在任何地方按下回車,相當於按下了IDOK這個按鈕(如果有),所以,在該程序中,按下 回車,則系統就會退出。
        2. IDCANCEL 相當於退出,如上一樣,如果按下 ESC鍵,就相當於調用這個按鈕。
  4. Tab停留位和組:
    1. 輸入焦點 初步介紹:
      1. 對話框中可以定義多個子窗口控件,有的子窗口控件可以用於輸入焦點(如按鈕、文本框、組合框等),有的則不等。(如圖標和文本等)
      2. 當對話框中有多個允許用於輸入焦點的子窗口控件時(有WS_TABSTOP風格),用戶可以用 Tab鍵將 輸入焦點切換到下一個有WS_TABSTOP風格的子窗口空間上,也可以 Shift+Tab切換到上一個。
      3. Tab鍵切換的順序就叫做Tab停留位。
    2. Tab停留位 介紹:
      1. Tab停留位並不是根據子窗口空間的座標位置自動排序的,而是按照 子窗口控件 在資源腳本文件中的定義順序來排列。
      2. 所以讀者在定義的時候根據子窗口空間的位置適當排列語句的先後,以免按動Tabj鍵切換的時候焦點上下左右無規則的跳來跳去。
      3. 如果使用可視化的資源編輯器,那麼菜單中會有“Tab停留位”菜單項,在編輯完成後也要進行這個菜單項設置,資源編輯器會根據rc文件中定義語句的先後順序。
    3. “組”的介紹
      1. 對話框中往往有一些排列在一起的同類子窗口控件,如 幾個菜單按鈕,幾個單選鈕之間的選中標記往往是互斥的。
      2. 在對話框的其他地方可能又有一組互斥的單選鈕用來代表其他功能。
      3. 對話框中規定所有的單選鈕都是互斥的顯然不現實,解決的方法就是將不同的子窗口控件“分組”,這就是“組”的含義。
      4. 使用中可以選擇一些子窗口控件定義WS_GROUP屬性,兩個WS_GROUP屬性的子窗口控件之間的所有子窗口控件同屬同一組。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章