MFC iletişim tabanlı uygulama için ana iletişim kutusu DoModal
çağrısından hemen sonra, sonlandırma kodunu InitInstance
yöntemine uygulayabilirsiniz. Diğer MFC uygulama türleri için (MDI, SDI) sonlandırma kodu genellikle ExitInstance
yöntemine yerleştirilir.
Diyaloga dayalı uygulama ile SDI/MDI uygulamaları arasındaki fark, diyalog tabanlı uygulamalarda InitInstance
'un FALSE değerini döndürmesi ve uygulama çıkmasıdır - tüm eylemler ana iletişim kutusu DoModal
çağrısında gerçekleştirilir.
Tüm uygulama türleri için ExitInstance
kullanmayı tercih edebilirsiniz, ayrıca çalışmalıdır.
Düzenle. İletişim sınıfının içinde temizleme kodu yapmak istiyorsanız, WM_DESTROY
(daha önce Roger Rowland tarafından belirtilmiştir), WM_CLOSE
'dan daha iyi bir yerdir. Bazen WM_CLOSE
mesajını kullanabiliriz ve bir diyalogun kapanmasını önleyebiliriz, örneğin "Programdan çıkılsın mı? Evet - Hayır" diye sorabiliriz. Bazı alt pencereleri kullanmak istediğinizde, bunlar WM_CLOSE
ve WM_DESTROY
ileti işleyicilerinde bulunur ve bir iletişim nesnesinde yoktur. Ayrıca, ana iletişim bozucusu çağrıldığında ileti kuyruğu mevcut değildir, bu durumda Windows mesajlaşmasını kullanmamalısınız.
Genelde bir "WM_DESTROY" işleyicisine koydum ama bunu yok ediciye tercih ediyorum çünkü MFC altyapısının hala canlı olacağını biliyorum ve dtor'a ulaştığımda emin değilim :-) Genellikle, yığın ayırmalarını silmek için dtoru ayırırım. –