Aracılığıyla paylaş


İzlenecek yol: Bir Uygulamaya CTaskDialog Ekleme

Bu kılavuzda CTaskDialog Sınıfı tanıtılır ve uygulamanıza nasıl ekleyebileceğiniz gösterilir.

, CTaskDialog Windows Vista veya sonraki sürümlerde Windows ileti kutusunun yerini alan bir görev iletişim kutusudur. , CTaskDialog özgün ileti kutusunu geliştirir ve işlevsellik ekler. Windows ileti kutusu Visual Studio'da hala desteklenmektedir.

Dekont

Windows Vista'dan önceki Windows sürümleri, 'yi CTaskDialogdesteklemez. Uygulamanızı Windows'un önceki bir sürümünde çalıştıran bir kullanıcıya ileti göstermek istiyorsanız alternatif bir iletişim kutusu seçeneği programlamanız gerekir. Bir kullanıcının bilgisayarının bir görüntüleyip görüntüleyemeyeceğini CTaskDialogçalışma zamanında belirlemek için CTaskDialog::IsSupported statik yöntemini kullanabilirsiniz. Buna ek olarak, yalnızca CTaskDialog uygulamanız Unicode kitaplığıyla derlendiğinde kullanılabilir.

, CTaskDialog bilgi toplamak ve görüntülemek için birkaç isteğe bağlı öğeyi destekler. Örneğin, bir CTaskDialog komut bağlantılarını, özelleştirilmiş düğmeleri, özelleştirilmiş simgeleri ve alt bilgiyi görüntüleyebilir. ayrıca CTaskDialog , kullanıcının hangi isteğe bağlı öğeleri seçtiğini belirlemek için görev iletişim kutusunun durumunu sorgulamanızı sağlayan çeşitli yöntemlere sahiptir.

Ön koşullar

Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

  • Visual Studio 2010 veya sonrası

  • Windows Vista veya üzeri

Windows İleti Kutusunu CTaskDialog ile Değiştirme

Aşağıdaki yordam, Windows ileti kutusunu değiştirmek için en temel kullanımını CTaskDialoggösterir. Bu örnek, görev iletişim kutusuyla ilişkili simgeyi de değiştirir. Simgenin değiştirilmesi, CTaskDialog Windows ileti kutusunda aynı görünmesini sağlar.

Windows İleti Kutusunu CTaskDialog ile Değiştirmek için

  1. Tüm varsayılan ayarlarla bir MFC uygulaması oluşturmak için MFC Uygulama Sihirbazı'nı kullanın. Visual Studio sürümünüz için sihirbazı açma yönergeleri için bkz . İzlenecek Yol: Yeni MFC Kabuğu Denetimlerini Kullanma.

  2. MyProject olarak adlandır.

  3. myProject.cpp dosyasını açmak için Çözüm Gezgini kullanın.

  4. Ekleme listesinden sonra ekleyin #include "afxtaskdialog.h" .

  5. yöntemini CMyProjectApp::InitInstancebulun. Deyiminden önce aşağıdaki kod satırlarını return TRUE; ekleyin. Bu kod, Windows ileti kutusunda veya içinde CTaskDialogkullandığımız dizeleri oluşturur.

    CString message("My message to the user");
    CString dialogTitle("My Task Dialog title");
    CString emptyString;
    
  6. 4. adımdaki kodun arkasına aşağıdaki kodu ekleyin. Bu kod, kullanıcının bilgisayarının 'yi desteklediğini CTaskDialoggaranti eder. İletişim kutusu desteklenmiyorsa, uygulama bunun yerine bir Windows ileti kutusu görüntüler.

    if (CTaskDialog::IsSupported())
    {
    
    }
    else
    {
        AfxMessageBox(message);
    }
    
  7. 5. adımdaki deyiminden if sonra köşeli ayraçların arasına aşağıdaki kodu ekleyin. Bu kod oluşturur CTaskDialog.

    CTaskDialog taskDialog(message, emptyString, dialogTitle, TDCBF_OK_BUTTON);
    
  8. Sonraki satıra aşağıdaki kodu ekleyin. Bu kod uyarı simgesini ayarlar.

    taskDialog.SetMainIcon(TD_WARNING_ICON);
    
  9. Sonraki satıra aşağıdaki kodu ekleyin. Bu kod görev iletişim kutusunu görüntüler.

    taskDialog.DoModal();
    

Windows ileti kutusuyla aynı simgenin CTaskDialog görüntülenmesini istemiyorsanız 7. adımdan kaçınabilirsiniz. Bu adımdan kaçındığınızda, CTaskDialog uygulama görüntülendiğinde simgesi yoktur.

Uygulamayı derleyin ve çalıştırın. Uygulama başladıktan sonra görev iletişim kutusunu görüntüler.

CTaskDialog'a İşlevsellik Ekleme

Aşağıdaki yordamda, önceki yordamda oluşturduğunuz işlevin CTaskDialog nasıl ekleneceği gösterilmektedir. Örnek kod, kullanıcının seçimlerine göre belirli yönergeleri yürütmeyi gösterir.

CTaskDialog'a İşlevsellik Eklemek için

  1. Kaynak Görünümü'ne gidin. Kaynak Görünümü'nü göremiyorsanız Görünüm menüsünden açabilirsiniz.

  2. Dize Tablosu klasörünü seçene kadar Kaynak Görünümü'nü genişletin. Genişletin ve Dize Tablosu girdisine çift tıklayın.

  3. Dize tablosunun en altına kaydırın ve yeni bir giriş ekleyin. Kimliği olarak TEMP_LINE1değiştirin. başlık Komut Satırı 1 olarak ayarlayın.

  4. Başka bir yeni girdi ekleyin. Kimliği olarak TEMP_LINE2değiştirin. başlık Komut Satırı 2 olarak ayarlayın.

  5. MyProject.cpp'ye geri dönün.

  6. sonrasında CString emptyString;aşağıdaki kodu ekleyin:

    CString expandedLabel("Hide extra information");
    CString collapsedLabel("Show extra information");
    CString expansionInfo("This is the additional information to the user,\nextended over two lines.");
    
  7. deyimini taskDialog.DoModal() bulun ve bu deyimi aşağıdaki kodla değiştirin. Bu kod görev iletişim kutusunu güncelleştirir ve yeni denetimler ekler:

    taskDialog.SetMainInstruction(L"Warning");
    taskDialog.SetCommonButtons(
        TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON);
    taskDialog.LoadCommandControls(TEMP_LINE1, TEMP_LINE2);
    taskDialog.SetExpansionArea(
        expansionInfo, collapsedLabel, expandedLabel);
    taskDialog.SetFooterText(L"This is a small footnote to the user");
    taskDialog.SetVerificationCheckboxText(L"Remember your selection");
    
  8. Kullanıcıya görev iletişim kutusunu görüntüleyen ve kullanıcının seçimini alan aşağıdaki kod satırını ekleyin:

    INT_PTR result = taskDialog.DoModal();
    
  9. çağrısından taskDialog.DoModal()sonra aşağıdaki kodu ekleyin. Kodun bu bölümü kullanıcının girişini işler:

    if (taskDialog.GetVerificationCheckboxState())
    {
        // PROCESS IF the user selects the verification checkbox
    }
    
    switch (result)
    {
    case TEMP_LINE1:
        // PROCESS IF the first command line
        break;
    case TEMP_LINE2:
        // PROCESS IF the second command line
        break;
    case IDYES:
        // PROCESS IF the user clicks yes
        break;
    case IDNO:
        // PROCESS IF the user clicks no
        break;
    case IDCANCEL:
        // PROCESS IF the user clicks cancel
        break;
    default:
        // This case should not be hit because closing
        // the dialog box results in IDCANCEL
        break;
    }
    

9. adımdaki kodda, ile başlayan açıklamaları belirtilen koşullar altında yürütmek istediğiniz kodla PROCESS IF değiştirin.

Uygulamayı derleyin ve çalıştırın. Uygulama, yeni denetimleri ve ek bilgileri kullanan görev iletişim kutusunu görüntüler.

CTaskDialog Nesnesi Oluşturmadan CTaskDialog Görüntüleme

Aşağıdaki yordamda, önce nesne oluşturmadan nasıl CTaskDialog görüntüleneceği gösterilmektedir CTaskDialog . Bu örnekte önceki yordamlar devam eder.

CTaskDialog Nesnesi Oluşturmadan CTaskDialog Görüntülemek için

  1. Henüz açık değilse MyProject.cpp dosyasını açın.

  2. Deyimin kapanış köşeli ayracına if (CTaskDialog::IsSupported()) gidin.

  3. Aşağıdaki kodu deyiminin kapanış köşeli ayracından if hemen önce ekleyin (bloğundan else önce):

    HRESULT result2 = CTaskDialog::ShowDialog(L"My error message",
        L"Error",
        L"New Title",
        TEMP_LINE1,
        TEMP_LINE2);
    

Uygulamayı derleyin ve çalıştırın. Uygulama iki görev iletişim kutusu görüntüler. İlk iletişim kutusu , İşlev Eklemek için CTaskDialog yordamından, ikinci iletişim kutusu ise son yordamdandır.

Bu örnekler, için CTaskDialogkullanılabilir tüm seçenekleri göstermez, ancak kullanmaya başlamanıza yardımcı olmalıdır. Sınıfın tam açıklaması için bkz . CTaskDialog Sınıfı .

Ayrıca bkz.

İletişim Kutuları
CTaskDialog Sınıfı
CTaskDialog::CTaskDialog