2008-08-18 7 views

Trả lời

10

Programatically Chấm dứt một ứng dụng MFC

void ExitMFCApp() 
    { 
     // same as double-clicking on main window close box 
     ASSERT(AfxGetMainWnd() != NULL); 
     AfxGetMainWnd()->SendMessage(WM_CLOSE); 
    } 

http://support.microsoft.com/kb/117320

+0

bất kỳ mã C# tương đương? –

12
AfxGetMainWnd()->PostMessage(WM_CLOSE); 
4

Để hỗ trợ câu trả lời của @ Mike, lý do sử dụng phương pháp này là kích hoạt trình tự tắt đúng. Đặc biệt quan trọng đối với các ứng dụng MDI/SDI vì nó cung cấp cơ hội cho các tài liệu nhắc nhở lưu trước khi thoát hoặc hủy bỏ lệnh thoát.

@ Matt Noguchi, phương pháp của bạn sẽ phá vỡ chuỗi này (có thể là hiệu quả mong muốn, tôi giả sử, nhưng có lẽ bạn đã có vấn đề nếu bạn đang ngắn mạch các teardown bình thường.

4
PostQuitMessage([exit code]); 
1

Nếu đó là ứng dụng dựa trên hộp thoại, bạn có thể thực hiện bằng cách gọi hàm EndDialog()

Nếu đó là ứng dụng dựa trên SDI/MDI, bạn có thể gọi DestroyWindow. đóng tài liệu, deallocating bộ nhớ và tài nguyên, phá hủy bất kỳ cửa sổ bổ sung tạo ra vv).