2013-06-18 35 views
10

Tôi hiện đang bị nhầm lẫn một chút: Có phải WM_CLOSE::CloseWindow theo bất kỳ cách nào "có liên quan" hoặc dành cho những thứ hoàn toàn khác?Mối quan hệ của CloseWindow và WM_CLOSE là gì

Tài liệu cho Closing Windows không đề cập đến chức năng API CloseWindow. Nên CloseWindow thực sự được gọi là "MinimizeWindow" hoặc tôi thiếu gì?

+0

Khi tôi hỏi tại đây "Giá trị của hằng số hộp thoại DS_RECURSE là bao nhiêu?" (http://stackoverflow.com/questions/15024372/what-is-the-value-of-a-dialog-constant-ds-recurse) - chủ đề của tôi đã được [đóng]. Vì vậy, "Mối quan hệ của CloseWindow và WM_CLOSE" là gì phải [đóng] cũng :-) – kero

+0

@kero: Bạn đã yêu cầu giá trị của một hằng số không được ghi lại để làm bất cứ điều gì. Đây không phải là một câu hỏi lập trình thực tế. Khá trái ngược với câu hỏi này. Đó là lý do tại sao bạn đóng cửa, và điều này là không. – IInspectable

Trả lời

5

CloseWindowWM_CLOSE hoàn toàn không liên quan. Chức năng CloseWindow bị đặt tên kém. Chức năng nghịch đảo của nó, OpenWindow được đặt tên tương tự với điều kiện là nó khôi phục các cửa sổ.

tôi nghi ngờ những tên ngày trở lại một cách rất dài, có thể là Windows phiên bản 1 hoặc 2. Tôi đang suy đoán rằng những gì chúng ta gọi là giảm thiểukhôi phục được, trở lại sau đó, được gọi là gầnmở.

Cách thông thường để thu nhỏ hoặc khôi phục cửa sổ là gọi ShowWindow qua SW_MINIMIZE hoặc SW_RESTORE.

Tôi khuyên bạn nên quên tất cả về CloseWindowOpenWindow.

6

CloseWindow là một hàm winapi ít được gọi là bất thường. Nó không thực sự đóng một cửa sổ, nó chỉ giảm thiểu nó. Những gì bạn có thể có nghĩa là DestroyWindow().

WM_CLOSE thường là một thông điệp mà là tạo ra bởi thủ tục cửa sổ mặc định, để đáp ứng cho người sử dụng nhấn Alt +F4 hoặc nhấp nút đóng của sổ. Thông báo cơ bản là WM_SYSCOMMAND, SC_CLOSE. Nó có thể cũng được tạo trong mã, như một mục menu Window + Close.

Bạn có thể nghe WM_CLOSE trong quy trình cửa sổ hoặc bản đồ thông báo MFC. Người dùng sẽ mong đợi cửa sổ bị đóng. Vì vậy, bạn thường gọi DestroyWindow(). Bạn không cần phải, bạn có thể hiển thị một hộp thông báo ví dụ và hỏi người dùng xem có nên lưu dữ liệu hay không. Và nếu anh ta nhấp vào Không thì bạn không gọi số DestroyWindow().

Các vấn đề liên quan