Windows Mobile işletim sistemi kullanan cihazlardaki en popüler sorudur. Çünkü uygulama minimize edilse dahi sistem kaynakkklarını kullanmaya devam etmektedir. Arka planda çalışan programı şahsım adına unuttuğum dahi olabilmekte. Sistem kaynaklarını kullanması bir kenara bu işlem yüzünden pilimin kullanım süreside düşmekte. En azından kendi uygulamlarınızda bu işlemi uygulayarak kullanıcıları büyük bir dertten kurtarabilirsiniz. Bunun için biraz alt seviyeli programlamaya inmemiz ve pencere mesajlaşma fonksiyonlaraına ve parametrelerin göz atmamız gerekmekte. Program minimize butonuna basıldığında SIZE_MINIMIZED sabiti ile WM_SIZE mesajını almaktadır bu da wParam içinde gelmektedir. Bizim yapmamız gereken ise bu mesaj geldiğinde PostMessage(WM_CLOSE) metodunu tetiklemektir.

Bunun için aşağıdaki kod parçası işinizi görecektir. Zamanında biraz Windows API’lerle uğraşmış yazılım geliştiriciler için oldukça aşina geleceğini tahmin etmekteyim. Uygulama kodları Native düzeydedir.

 

LRESULT CCloseOnMinFrame::OnSize(UINT /*uMsg*/,
                                 WPARAM wParam,
                                 LPARAM /*lParam*/,
                                 BOOL& bHandled)
{
    if(wParam == SIZE_MINIMIZED)
    {
        PostMessage(WM_CLOSE);
        bHandled = TRUE;
        return 0;
    }
    // Not handled here
    bHandled = FALSE;
    return 1;
}

 

Kaynak: MVP João Paulo Figueira