<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    MFC窗口的父子關系和層級關系

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

      一直對窗口之間的關系有些混亂,遇到需要指定父窗口的函數時常常要考慮很久,究竟父窗口是哪個窗口,遂上網查資料,略有所悟,簡記如下:

            對話框中的所有控件(比如Button等)都是其子窗口。
            文檔/視圖結構中,框架窗口是視圖窗口的父窗口。
            同時在使用CreateWindow和CreateWindowEx時可以指定父窗口,建立窗口的父子關系。

    另外,網上有篇文章講Windows窗口的層級關系,也頗清楚,故轉來備查:

    一、windows窗口之間的關系包括所有與被所有關系,父子關系等。
           操作系統為每個窗口實例都分配一個內存空間,該空間被稱為窗口實例的信息結構。該結構包含了窗口實例的所有信息,其中有四個窗口句柄:1、本窗口實例的Z_Order順序最高的子窗口句柄;2、本窗口實例的下一個兄弟窗口的句柄(子窗口之間稱為兄弟窗口);3、本窗口實例的父窗口句柄;4、本窗口實例的所有者窗口句柄。
    二、桌面窗口(第一層窗口)
            windows初始化時,首先創建一個桌面窗口,其他所有窗口都顯示在其上。::GetDesktopWindow()可以取得桌面窗口的句柄。桌面窗口位于系統窗口層次的最上層。
    三、頂級窗口(第二層窗口)
           它沒有被設置為WS_CHILD風格的窗口,但它是桌面的子窗口。雖然頂級窗口之間存在兄弟關系,但它們之間可以建立一種所有與被所有的關系(所有者窗口和受控窗口)。受控窗口位于所有者窗口前段,即它的Z_Order順序可以被所有者窗口被激活而提高。所有者窗口最小化時,受控窗口被隱藏。當使用CreateWindow()和CreateWindowEx()創建一個頂級窗口時,參數hWndParent決定所有者窗口,若hWndParent為子窗口,則由系統搜索該子窗口的上級窗口,直到找到最近的頂級窗口,作為被創建窗口的所有者。
    四、子窗口(第三層及其以下窗口)
           子窗口以同樣的方式和父窗口連接。決定頂級窗口之間的Z_Order順序的規則,同樣適合子窗口之間,即由擴展風格WS_EX_TOPMOST和窗口激活的先后順序共同決定。
    五、重疊窗口與彈出窗口的區別
           它們都是頂級窗口。前者總有標題欄和邊框,并且總是自動設置WS_CLIPSIBLINGS風格。調用CreateWindow()和CreateWindowEx()創建重疊窗口時,可以指定默認的窗口尺寸參數,即CW_USEDEFAULT,由系統設置窗口的初始尺寸。彈出窗口同樣自動設置WS_CLIPSIBLINGS風格,但其他風格必須專門指定,不可以使用CW_USEDEFAULT作為初始尺寸。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全