Khi một ứng dụng nằm phía sau một ứng dụng khác và Tôi nhấp vào biểu tượng trên thanh tác vụ của ứng dụng, tôi mong đợi toàn bộ ứng dụng đến đến đầu đơn đặt hàng z, ngay cả khi hộp thoại WS_POPUP kiểu ứng dụng là mở .Tại sao việc nhấp vào cửa sổ con không phải lúc nào cũng mang ứng dụng đến nền trước?
Tuy nhiên, một số thời gian, đối với một số hộp thoại của tôi (và những người khác), chỉ có hộp thoại xuất hiện phía trước; phần còn lại của ứng dụng ở lại phía sau.
Tôi đã xem Spy ++ và cho những người hoạt động chính xác, tôi có thể thấy WM_WINDOWPOSCHANGING đang được gửi tới phụ huynh của hộp thoại. Đối với những người mà để lại phần còn lại của ứng dụng phía sau, WM_WINDOWPOSCHANGING không phải là được gửi tới phụ huynh của hộp thoại.
Tôi có ví dụ trong đó một hộp thoại thường mang đến toàn bộ ứng dụng với nó và hộp kia thì không. Cả hộp thoại làm việc và hộp thoại không hoạt động đều có cùng kiểu cửa sổ, trạm biến áp, cha mẹ, chủ sở hữu, ontogeny.
Tóm lại, cả hai đều là các cửa sổ WS_POPUPWINDOW được tạo bằng DialogBoxParam(), đã chuyển vào các HWND giống hệt nhau làm đối số thứ ba.
Có ai khác nhận thấy sự kỳ quặc hành vi này trong các chương trình Windows không? TaskBar gửi thông điệp gì đến ứng dụng khi tôi nhấp vào nút của nó? Trách nhiệm của ai là đảm bảo rằng tất cả các cửa sổ của ứng dụng đều đến nền trước?
Trong trường hợp của tôi cơ sở cha mẹ là một khung MDI ... có yếu tố đó bằng cách nào đó?
Cảm ơn câu trả lời của bạn! Tuy nhiên, đây không phải là nguyên nhân của vấn đề với đơn đăng ký của tôi. Như tôi đã nói trong câu hỏi của mình, tôi đang chuyển chủ sở hữu trong mọi trường hợp. Bất kỳ ý tưởng nào khác? –
Bạn có mẫu có thể tái sản xuất không? –