窗口句柄(HWND)都由操作系統內核管理。系統內部有壹個z-order序列,記錄了從屏幕底部(從屏幕到眼睛的假想方向)到屏幕頂部壹個窗口句柄的當前排序。這種排序不關心父窗口或子窗口。
當任何窗口接收到WM_PAINT消息並重繪時,在更新區域被繪制之後,它搜索它前面的窗口。如果此窗口的範圍與更新區域重疊,它將wm_paint消息發送到此窗口,依此類推,直到執行到頂部窗口。它是完整的。
對於壹個對話框(對於主窗口來說,它的所有子窗口都在他面前——也就是離眼睛更近),所以主窗口接受wm_paint後,會導致更新區域的所有子窗口都被重畫(所有子窗口也是從下到外排序)。
誰管都無所謂,每個窗口都是對等的,都有自己的消息對應功能,只是屬性不同。
邏輯上可以這麽理解,但實際上操作系統是按主窗口排序的,然後壹個主窗口的所有子窗口都是有層次的,再排序。所以邏輯上,系統中所有的窗口句柄都有壹個排序。