Trong lập trình Win32, sự khác nhau giữa cha mẹ của cửa sổ và chủ cửa sổ là gì? Tôi nghĩ tôi đã có nó tìm ra, sau đó tôi đi qua mã này:Cửa sổ Win32 Chủ sở hữu so với cửa sổ Phụ huynh?
SetWindowLong(handle, GWL_HWNDPARENT, foo);
Điều này thực sự đặt ra chủ sở hữu của cửa sổ, không phải là mẹ - mặc dù GWL_HWNDPARENT đang được sử dụng. Các thuật ngữ phụ huynh/chủ sở hữu có thể hoán đổi cho nhau hoặc có sự khác biệt thực sự không?
Cảm ơn cửa sổ cũng như mẹo cửa sổ - đôi khi những điều này trở nên khó hiểu khi cố gắng thảo luận với người khác. –
Điều này không chính xác. Một cửa sổ có thể có một phụ huynh hoặc một chủ sở hữu nhưng không phải cả hai. –
Raymond, tôi nghĩ một phần của sự nhầm lẫn đó là Spy ++ và GetAncestor (GA_PARENT) sẽ trả về 'cửa sổ tiếp theo ở cấp độ HWND' ngay cả đối với các HWND sở hữu hàng đầu, vì vậy nói một cách thông tục, chúng có 'cha', ngay cả khi nó không được theo dõi theo cách đó trong nội bộ. Về cơ bản có hai cách nhìn vào cây HWND; cái cây đơn độc bắt nguồn từ màn hình máy tính để bàn mà bạn nhìn thấy với Spy ++/GetAncestor/EnumChildWindows/GetWindow (GA_FIRST/NEXT), và sau đó có chế độ xem 'hướng nội bộ', trong đó mỗi HWND có một khe duy nhất là cha mẹ hoặc chủ sở hữu tùy thuộc vào trên WS_CHILD. – BrendanMcK