win32 5.4 對話框的簡介

  1. 對話框介紹:
    對話框就是在程序中“選擇菜單項彈出一個窗口”,認爲是“子窗口”,其中對話框的按鈕、文本框、圖標等就是 子窗口控件。
    在這裏插入圖片描述

  2. 對話框的類型:

    1. modEl 對話框:模板對話框,用戶在關閉對話框前不能切換到該程序的其他窗口。
    2. modeless 對話框:非模板對話框,可以任意切換該程序的其他窗口。
  3. 對話框的工作原理:

    1. 對話框創建使用的函數:
      1. model對話框:DialogBoxParam( )
      2. modeless:CreateDialogParam( )
    2. 對話框窗口創建過程:
      在這裏插入圖片描述
      1. 其對話框創建同樣使用WM_CREATE消息,我們使用 對話框過程 來處理 對話框裏的消息。
      2. 但是,應該注意的是:
        1. 我們在 對話框過程中 不用負責 WM_CREATE消息的處理,我們在調用上面的對話框創建函數 時,Windows內核會自動處理該WM_CREATE函數,以後的 對話框消息 都要先經過 Windows內建的窗口過程處理完自己應該處理的消息,之後再扔給用戶定義的 對話框過程。
        2. 另外,在 模板對話框中,連 消息循環都內建在windows中,這就意味着:我們無法在模板對話框中使用 加速鍵 等功能。
      3. 代碼解讀:我們來看一下一個關於 模板對話框 的代碼。結合上面圖解可以看出,當創建完後,控制權一直在內核中,直到調用 對話框處理過程 才把控制權交給用戶;但普通窗口,其循環過程的控制權一直都在用戶手中。
        在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章