Aracılığıyla paylaş


İzlenecek yol: MFC Karalama Uygulamasını Güncelleştirme (1. Bölüm)

Bu kılavuzda, şerit kullanıcı arabirimini kullanmak için var olan bir MFC uygulamasının nasıl değiştirileceği gösterilmektedir. Visual Studio hem Office 2007 Şeridini hem de Windows 7 Doğal Şeridi'ni destekler. Şerit kullanıcı arabirimi hakkında daha fazla bilgi için bkz . Şeritler.

Bu izlenecek yol, çizgi çizimleri oluşturmak için fareyi kullanmanıza olanak tanıyan klasik Karalama 1.0 MFC örneğini değiştirir. İzlenecek kılavuzun bu bölümünde, Karalama örneğinin şerit çubuğu görüntülenecek şekilde nasıl değiştirileceği gösterilir. 2 . Bölüm, şerit çubuğuna daha fazla düğme ekler.

Ön koşullar

Karalama 1.0 MFC örneği. Visual Studio 2017 veya sonraki bir sürümüne dönüştürme konusunda yardım için bkz . Taşıma Kılavuzu: MFC Karalama.

Bölümler

İzlenecek kılavuzun bu bölümünde aşağıdaki bölümler yer almaktadır:

Temel Sınıfları Değiştirme

Menüyü destekleyen bir uygulamayı şeridi destekleyen bir uygulamaya dönüştürmek için uygulama, çerçeve penceresi ve araç çubuğu sınıflarını güncelleştirilmiş temel sınıflardan türetmelisiniz. (Özgün Karalama örneğini değiştirmenizi öneririz. Bunun yerine Karalama projesini temizleyin, başka bir dizine kopyalayın ve kopyayı değiştirin.)

Karalama uygulamasındaki temel sınıfları değiştirmek için

  1. scribble.cpp dosyasında AfxOleInit çağrısı içerdiğini CScribbleApp::InitInstance doğrulayın.

  2. Pch.h dosyasına (Visual Studio 2017 ve önceki sürümlerde stdafx.h) aşağıdaki kodu ekleyin:

    #include <afxcontrolbars.h>
    
  3. scribble.h dosyasında, CWinAppEx Sınıfından türetilmiş olması için sınıfın CScribbleApp tanımını değiştirin.

    class CScribbleApp: public CWinAppEx
    
  4. Karalama 1.0, Windows uygulamaları kullanıcı tercih verilerini kaydetmek için bir başlatma (.ini) dosyası kullandığında yazılmıştır. Başlatma dosyası yerine, kullanıcı tercihlerini kayıt defterinde depolamak için Karalama'yı değiştirin. Kayıt defteri anahtarını ve tabanını ayarlamak için deyiminden LoadStdProfileSettings() sonra aşağıdaki kodu CScribbleApp::InitInstance yazın.

    SetRegistryKey(_T("MFCNext\\Samples\\Scribble2"));
    SetRegistryBase(_T("Settings"));
    
  5. Birden çok belge arabirimi (MDI) uygulamasının ana çerçevesi artık sınıfından CMDIFrameWnd türetilmemiştir. Bunun yerine, CMDIFrameWndEx sınıfından türetilir.

    mainfrm.h ve mainfrm.cpp dosyalarında, tüm başvurularını CMDIFrameWnd ile CMDIFrameWndExdeğiştirin.

  6. childfrm.h ve childfrm.cpp dosyalarında ile değiştirin CMDIChildWnd CMDIChildWndEx.

    Childfrm'de. h file, replace CSplitterWnd with CSplitterWndEx.

  7. Yeni MFC sınıflarını kullanmak için araç çubuklarını ve durum çubuklarını değiştirin.

    mainfrm.h dosyasında:

    1. CToolBar öğesini CMFCToolBar ile değiştirin.

    2. CStatusBar öğesini CMFCStatusBar ile değiştirin.

  8. mainfrm.cpp dosyasında:

    1. şununla değiştir m_wndToolBar.SetBarStylem_wndToolBar.SetPaneStyle

    2. şununla değiştir m_wndToolBar.GetBarStylem_wndToolBar.GetPaneStyle

    3. şununla değiştir DockControlBar(&m_wndToolBar)DockPane(&m_wndToolBar)

  9. ipframe.cpp dosyasında aşağıdaki üç kod satırını açıklama satırı yapın.

    m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
    pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
    pWndFrame->DockPane(&m_wndToolBar);
    
  10. Değişiklikleri kaydedin ve uygulamayı derleyip çalıştırın.

Projeye Bit Eşlem Ekleme

Bu kılavuzun sonraki dört adımında bit eşlem kaynakları gerekir. Uygun bit eşlemleri çeşitli yollarla alabilirsiniz:

  • Kendi bit eşlemlerinizi bulmak için Kaynak Düzenleyicilerini kullanın. Alternatif olarak, Visual Studio'da bulunan ve Visual Studio görüntü kitaplığından indirilebilen taşınabilir ağ grafiklerinden (.png) bit eşlemleri bir araya getirmek için kaynak düzenleyicileri de kullanabilirsiniz.

    Ancak Şerit kullanıcı arabirimi, bazı bit eşlemlerin saydam görüntüleri desteklemesini gerektirir. Saydam bit eşlemler 32 bit piksel kullanır; burada 24 bit rengin kırmızı, yeşil ve mavi bileşenlerini belirtir ve 8 bit rengin saydamlığını belirten bir alfa kanalı tanımlar. Geçerli kaynak düzenleyicileri 32 bit pikselli bit eşlemleri görüntüleyebilir, ancak değiştiremez. Sonuç olarak, saydam bit eşlemleri işlemek için kaynak düzenleyicileri yerine bir dış görüntü düzenleyicisi kullanın.

  • Başka bir uygulamadan projenize uygun bir kaynak dosyasını kopyalayın ve ardından bu dosyadan bit eşlemleri içeri aktarabilirsiniz.

Bu izlenecek yol, kaynak dosyalarını İzlenecek Yol: MFC Kullanarak Şerit Uygulaması Oluşturma bölümünde oluşturulan örnekten kopyalar.

Projeye bit eşlemler eklemek için

  1. Şerit örneğinin resources dizininden (res) aşağıdaki .bmp dosyalarını Karalama projesinin kaynak dizinine (res) kopyalamak için Dosya Gezgini kullanın:

    1. Main.bmp dosyasını Karalama projenize kopyalayın.

    2. Filesmall.bmp ve filelarge.bmp dosyalarını Karalama projenize kopyalayın.

    3. filelarge.bmp ve filesmall.bmp dosyalarının yeni kopyalarını oluşturun, ancak kopyaları Şerit örneğine kaydedin. homesmall.bmp ve homelarge.bmp kopyalarını yeniden adlandırın ve kopyaları Karalama projenize taşıyın.

    4. Toolbar.bmp dosyasının bir kopyasını yapın, ancak kopyayı Şerit örneğine kaydedin. Kopyalama panelicons.bmp dosyasını yeniden adlandırın ve kopyayı Karalama projenize taşıyın.

  2. MFC uygulamasının bit eşlemini içeri aktarın. Kaynak Görünümü'nde scribble.rc düğümüne çift tıklayın, Bit eşlem düğümüne çift tıklayın ve ardından Kaynak ekle'ye tıklayın. Görüntülenen iletişim kutusunda İçeri Aktar'a tıklayın. Dizine res göz atın, main.bmp dosyasını seçin ve aç'a tıklayın.

    main.bmp bit eşlemi 26x26 görüntüsü içerir. Bit eşlem kimliğini olarak IDB_RIBBON_MAINdeğiştirin.

  3. Uygulama düğmesine bağlı dosya menüsünün bit eşlemlerini içeri aktarın.

    1. On bir adet 16x16 (16x176) görüntü içeren filesmall.bmp dosyasını içeri aktarın. Bit eşlem kimliğini olarak IDB_RIBBON_FILESMALLdeğiştirin.

    Dekont

    Yalnızca ilk sekiz 16x16 görüntüye (16x128) ihtiyacımız olduğundan, isteğe bağlı olarak bu bit eşlemin sağ tarafındaki genişliği 176 ile 128 arasında kırpabilirsiniz.

    1. Dokuz 32x32 (32x288) görüntü içeren filelarge.bmp dosyasını içeri aktarın. Bit eşlem kimliğini olarak IDB_RIBBON_FILELARGEdeğiştirin.
  4. Şerit kategorileri ve panelleri için bit eşlemleri içeri aktarın. Şerit çubuğundaki her sekme bir kategoridir ve bir metin etiketi ile isteğe bağlı bir resimden oluşur.

    1. Küçük düğme bit eşlemleri için on bir adet 16x16 görüntü içeren homesmall.bmp bit eşlemini içeri aktarın. Bit eşlem kimliğini olarak IDB_RIBBON_HOMESMALLdeğiştirin.

    2. Büyük düğme bit eşlemleri için dokuz 32x32 görüntü içeren homelarge.bmp bit eşlemini içeri aktarın. Bit eşlem kimliğini olarak IDB_RIBBON_HOMELARGEdeğiştirin.

  5. Yeniden boyutlandırılan şerit panelleri için bit eşlemleri içeri aktarın. Bu bit eşlemler veya panel simgeleri, şerit panelin tamamını görüntüleyemeyecek kadar küçükse yeniden boyutlandırma işleminden sonra kullanılır.

    1. Sekiz 16x16 görüntü içeren panelicons.bmp bit eşlemini içeri aktarın. Bit Eşlem Düzenleyicisi'nin Özellikler penceresinde bit eşlem genişliğini 64 (16x64) olarak ayarlayın. Bit eşlem kimliğini olarak IDB_PANEL_ICONSdeğiştirin.

    Dekont

    Yalnızca ilk dört 16x16 görüntüye (16x64) ihtiyacımız olduğundan, isteğe bağlı olarak bu bit eşlemin sağ tarafındaki genişliği 128 ile 64 arasında kırpabilirsiniz.

Projeye Şerit Kaynağı Ekleme

Menüleri kullanan bir uygulamayı şerit kullanan bir uygulamaya dönüştürdüğünüzde, mevcut menüleri kaldırmanız veya devre dışı bırakmanız gerekmez. Bir şerit kaynağı oluşturun, şerit düğmeleri ekleyin ve yeni düğmeleri mevcut menü öğeleriyle ilişkilendirin. Menüler artık görünür olmasa da, şerit çubuğundaki iletiler menüler aracılığıyla yönlendirilir ve menü kısayolları çalışmaya devam eder.

Şerit, şeridin sol üst tarafındaki büyük düğme olan Uygulama düğmesinden ve bir veya daha fazla kategori sekmesinden oluşur. Her kategori sekmesi, şerit düğmeleri ve denetimleri için kapsayıcı görevi üstleyen bir veya daha fazla panel içerir. Aşağıdaki yordamda şerit kaynağı oluşturma ve uygulama düğmesini özelleştirme işlemi gösterilmektedir.

Projeye şerit kaynağı eklemek için

  1. Çözüm Gezgini'de Karalama projesi seçili durumdayken, Proje menüsünde Kaynak Ekle'ye tıklayın.

  2. Kaynak Ekle iletişim kutusunda Şerit'i seçin ve ardından Yeni'ye tıklayın.

    Visual Studio bir şerit kaynağı oluşturur ve bunu tasarım görünümünde açar. Şerit kaynak kimliği, IDR_RIBBON1Kaynak Görünümü'nde görüntülenen şeklindedir. Şeritte bir kategori ve bir panel bulunur.

  3. Uygulama düğmesini özelliklerini değiştirerek özelleştirebilirsiniz. Bu kodda kullanılan ileti kimlikleri, Karalama 1.0 menüsünde zaten tanımlanmıştır.

  4. Tasarım görünümünde, özelliklerini görüntülemek için Uygulama düğmesine tıklayın. Özellik değerlerini şu şekilde değiştirin: Image to IDB_RIBBON_MAIN, Prompt to File, Keys to f, Large Images to IDB_RIBBON_FILELARGE, ve Small Images to IDB_RIBBON_FILESMALL.

  5. Aşağıdaki değişiklikler, kullanıcı Uygulama düğmesine tıkladığında görüntülenen menüyü oluşturur. Öğe Düzenleyicisi'ni açmak için Ana Öğeler'in yanındaki üç noktaya (...) tıklayın.

    1. Öğe türü Düğmesi seçili durumdayken Ekle'ye tıklayarak düğme ekleyin. Resim Yazısını &New olarak değiştirin, Kimlik olarak ID_FILE_NEW, Görüntü olarak 0, Büyük Resim olarak 0olarak değiştirin.

    2. Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını &Save olarak, Kimlik olarak ID_FILE_SAVE, Resim olarak, Resim olarak 2ve Büyük Resim olarak 2değiştirin.

    3. Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını Save &As olarak, Kimlik olarak ID_FILE_SAVE_AS, Resim olarak, Resim olarak 3ve Büyük Resim olarak 3değiştirin.

    4. Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını &Print olarak, Kimlik olarak ID_FILE_PRINT, Resim olarak, Resim olarak 4ve Büyük Resim olarak 4değiştirin.

    5. Öğe türünü Ayırıcı olarak değiştirin ve Ekle'ye tıklayın.

    6. Öğe türünü Düğme olarak değiştirin. Beşinci düğmeyi eklemek için Ekle'ye tıklayın. Resim Yazısını &Close olarak, Kimlik olarak ID_FILE_CLOSE, Resim olarak, Resim olarak 5ve Büyük Resim olarak 5değiştirin.

  6. Aşağıdaki değişiklikler, önceki adımda oluşturduğunuz Yazdır düğmesinin altında bir alt menü oluşturur.

    1. Yazdır düğmesine tıklayın, Öğe türü'nü Etiket olarak değiştirin ve ekle'ye tıklayın. Resim Yazısını olarak Preview and print the documentdeğiştirin.

    2. Yazdır düğmesine tıklayın, Öğe türünü Düğme olarak değiştirin ve Ekle'ye tıklayın. Resim Yazısını &Print olarak, Kimlik olarak ID_FILE_PRINT, Resim olarak, Resim olarak 4ve Büyük Resim olarak 4değiştirin.

    3. Yazdır düğmesine tıklayın ve ardından ekle'ye tıklayarak düğme ekleyin. Resim Yazısını &Quick Print olarak, Kimlik olarak ID_FILE_PRINT_DIRECT, Resim olarak, Resim olarak 7ve Büyük Resim olarak 7değiştirin.

    4. Yazdır düğmesine tıklayın ve sonra ekle'ye tıklayarak başka bir düğme ekleyin. Resim Yazısını Print Pre&view olarak, Kimlik olarak ID_FILE_PRINT_PREVIEW, Resim olarak, Resim olarak 6ve Büyük Resim olarak 6değiştirin.

    5. Şimdi Ana Öğeleri değiştirdiniz. Öğe Düzenleyicisi'nde çıkmak için Kapat'a tıklayın.

  7. Aşağıdaki değişiklik, Uygulama düğmesi menüsünün en altında görünen bir çıkış düğmesi oluşturur.

    1. Çözüm Gezgini Kaynak Görünümü sekmesini seçin.

    2. Özellikler penceresinde, Öğe Düzenleyicisi'ni açmak için Düğme'nin yanındaki üç noktaya (...) tıklayın.

    3. Öğe türü Düğmesi seçili durumdayken Ekle'ye tıklayarak düğme ekleyin. Resim Yazısını E&xit olarak değiştirin, Kimlik olarak ID_APP_EXIT, Resim olarak 8değiştirin.

    4. Düğmeler'i değiştirdiniz. Öğe Düzenleyicisi'nde çıkmak için Kapat'a tıklayın.

Şerit Çubuğu Örneği Oluşturma

Aşağıdaki adımlarda, uygulamanız başlatıldığında şerit çubuğunun bir örneğinin nasıl oluşturulacağı gösterilmektedir. Uygulamaya şerit çubuğu eklemek için mainfrm.h dosyasında şerit çubuğunu bildirin. Ardından mainfrm.cpp dosyasında şerit kaynağını yüklemek için kod yazın.

Şerit çubuğunun bir örneğini oluşturmak için

  1. mainfrm.h dosyasında, ana çerçevenin sınıf tanımı olan korumalı bölümüne CMainFramebir veri üyesi ekleyin. Bu üye şerit çubuğu içindir.

    // Ribbon bar for the application
    CMFCRibbonBar m_wndRibbonBar;
    
  2. mainfrm.cpp dosyasında, işlevin sonundaki son return deyiminden CMainFrame::OnCreate önce aşağıdaki kodu ekleyin. Şerit çubuğunun bir örneğini oluşturur.

    // Create the ribbon bar
    if (!m_wndRibbonBar.Create(this))
    {
        return -1;   //Failed to create ribbon bar
    }
    m_wndRibbonBar.LoadFromResource(IDR_RIBBON1);
    

Şerit Kaynağını Özelleştirme

Artık Uygulama düğmesini oluşturduğunuza göre, şeride öğe ekleyebilirsiniz.

Dekont

Bu kılavuzda tüm paneller için aynı panel simgesi kullanılır. Ancak, diğer simgeleri görüntülemek için diğer görüntü listesi dizinlerini kullanabilirsiniz.

Giriş kategorisi ve Düzenleme paneli eklemek için

  1. Karalama programı yalnızca bir kategori gerektirir. Tasarım görünümünde, Araç Kutusu'nda Kategori'ye çift tıklayarak kategori ekleyin ve özelliklerini görüntüleyin. Özellik değerlerini şu şekilde değiştirin: Resim yazısı olarak &Home, Büyük Görüntüler olarak IDB_RIBBON_HOMELARGE, Küçük Görüntüler olarak IDB_RIBBON_HOMESMALL.

  2. Her şerit kategorisi adlandırılmış paneller halinde düzenlenir. Her panel, ilgili işlemleri tamamlayan bir dizi denetim içerir. Bu kategoride bir panel vardır. Panel'e tıklayın ve Resim Yazısı'nı olarak Editdeğiştirin.

  3. Düzenle paneline, belgenin içeriğini temizlemekle sorumlu bir düğme ekleyin. Bu düğmenin ileti kimliği menü kaynağında IDR_SCRIBBTYPE zaten tanımlanmış. Düğme metni olarak ve düğmeyi süsleyen bit eşlem dizini olarak belirtin Clear All . Araç Kutusu'nu açın ve bir Düğmeyi Düzenle paneline sürükleyin. Düğmeye tıklayın ve resim yazısını Clear Allolarak, Kimlik ID_EDIT_CLEAR_ALLolarak, Görüntü Dizini olarak0, Büyük Görüntü Dizini olarak 0değiştirin.

  4. Değişiklikleri kaydedin ve uygulamayı derleyip çalıştırın. Karalama uygulaması görüntülenmelidir ve pencerenin üst kısmında menü çubuğu yerine bir şerit çubuğu olmalıdır. Şerit çubuğunun bir kategorisi olmalıdır; Giriş ve Giriş'te düzenle olmak üzere bir panel olmalıdır. Eklediğiniz şerit düğmeleri mevcut olay işleyicileriyle ilişkilendirilmelidir ve , Kapat, Kaydet, Yazdır ve Tümünü Temizle düğmeleri beklendiği gibi çalışmalıdır.

Uygulamanın Görünümünü Ayarlama

Görsel yöneticisi, bir uygulama için tüm çizimleri denetleen genel bir nesnedir. Özgün Karalama uygulaması Office 2000 kullanıcı arabirimi (UI) stilini kullandığından, uygulama eski moda görünebilir. Uygulamayı Office 2007 görsel yöneticisini kullanacak şekilde sıfırlayabilirsiniz, böylece bir Office 2007 uygulamasına benzeyebilir.

Uygulamanın görünümünü ayarlamak için

  1. İşlevde CMainFrame::OnCreate , varsayılan görsel yöneticisini ve stilini değiştirmek için deyiminden return 0; önce aşağıdaki kodu yazın.

    // Set the default manager to Office 2007
    CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
    CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
    
  2. Değişiklikleri kaydedin ve uygulamayı derleyip çalıştırın. Uygulama kullanıcı arabirimi Office 2007 kullanıcı arabirimine benzemelidir.

Sonraki Adımlar

Şerit Tasarım Aracı kullanmak için klasik Karalama 1.0 MFC örneğini değiştirdiniz. Şimdi Bölüm 2'ye gidin.

Ayrıca bkz.

Kılavuz
İzlenecek yol: MFC Karalama Uygulamasını Güncelleştirme (2. Bölüm)