İ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
scribble.cpp dosyasında AfxOleInit çağrısı içerdiğini
CScribbleApp::InitInstance
doğrulayın.Pch.h dosyasına (Visual Studio 2017 ve önceki sürümlerde stdafx.h) aşağıdaki kodu ekleyin:
#include <afxcontrolbars.h>
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
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 koduCScribbleApp::InitInstance
yazın.SetRegistryKey(_T("MFCNext\\Samples\\Scribble2")); SetRegistryBase(_T("Settings"));
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
ileCMDIFrameWndEx
değiştirin.childfrm.h ve childfrm.cpp dosyalarında ile değiştirin
CMDIChildWnd
CMDIChildWndEx
.Childfrm'de. h file, replace
CSplitterWnd
withCSplitterWndEx
.Yeni MFC sınıflarını kullanmak için araç çubuklarını ve durum çubuklarını değiştirin.
mainfrm.h dosyasında:
CToolBar
öğesiniCMFCToolBar
ile değiştirin.CStatusBar
öğesiniCMFCStatusBar
ile değiştirin.
mainfrm.cpp dosyasında:
şununla değiştir
m_wndToolBar.SetBarStyle
m_wndToolBar.SetPaneStyle
şununla değiştir
m_wndToolBar.GetBarStyle
m_wndToolBar.GetPaneStyle
şununla değiştir
DockControlBar(&m_wndToolBar)
DockPane(&m_wndToolBar)
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);
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
Şerit örneğinin resources dizininden (
res
) aşağıdaki .bmp dosyalarını Karalama projesinin kaynak dizinine (res
) kopyalamak için Dosya Gezgini kullanın:Main.bmp dosyasını Karalama projenize kopyalayın.
Filesmall.bmp ve filelarge.bmp dosyalarını Karalama projenize kopyalayın.
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.
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.
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_MAIN
değiştirin.Uygulama düğmesine bağlı dosya menüsünün bit eşlemlerini içeri aktarın.
- 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_FILESMALL
değ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.
- Dokuz 32x32 (32x288) görüntü içeren filelarge.bmp dosyasını içeri aktarın. Bit eşlem kimliğini olarak
IDB_RIBBON_FILELARGE
değiştirin.
- On bir adet 16x16 (16x176) görüntü içeren filesmall.bmp dosyasını içeri aktarın. Bit eşlem kimliğini olarak
Ş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.
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_HOMESMALL
değiştirin.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_HOMELARGE
değiştirin.
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.
- 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_ICONS
değ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.
- 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
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
Çözüm Gezgini'de Karalama projesi seçili durumdayken, Proje menüsünde Kaynak Ekle'ye tıklayın.
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_RIBBON1
Kaynak Görünümü'nde görüntülenen şeklindedir. Şeritte bir kategori ve bir panel bulunur.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.
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 toFile
, Keys tof
, Large Images toIDB_RIBBON_FILELARGE
, ve Small Images toIDB_RIBBON_FILESMALL
.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.
Öğ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 olarakID_FILE_NEW
, Görüntü olarak0
, Büyük Resim olarak0
olarak değiştirin.Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını
&Save
olarak, Kimlik olarakID_FILE_SAVE
, Resim olarak, Resim olarak2
ve Büyük Resim olarak2
değiştirin.Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını
Save &As
olarak, Kimlik olarakID_FILE_SAVE_AS
, Resim olarak, Resim olarak3
ve Büyük Resim olarak3
değiştirin.Düğme eklemek için Ekle'ye tıklayın. Resim Yazısını
&Print
olarak, Kimlik olarakID_FILE_PRINT
, Resim olarak, Resim olarak4
ve Büyük Resim olarak4
değiştirin.Öğe türünü Ayırıcı olarak değiştirin ve Ekle'ye tıklayın.
Öğ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 olarakID_FILE_CLOSE
, Resim olarak, Resim olarak5
ve Büyük Resim olarak5
değiştirin.
Aşağıdaki değişiklikler, önceki adımda oluşturduğunuz Yazdır düğmesinin altında bir alt menü oluşturur.
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 document
değiştirin.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 olarakID_FILE_PRINT
, Resim olarak, Resim olarak4
ve Büyük Resim olarak4
değiştirin.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 olarakID_FILE_PRINT_DIRECT
, Resim olarak, Resim olarak7
ve Büyük Resim olarak7
değiştirin.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 olarakID_FILE_PRINT_PREVIEW
, Resim olarak, Resim olarak6
ve Büyük Resim olarak6
değiştirin.Şimdi Ana Öğeleri değiştirdiniz. Öğe Düzenleyicisi'nde çıkmak için Kapat'a tıklayın.
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.
Çözüm Gezgini Kaynak Görünümü sekmesini seçin.
Özellikler penceresinde, Öğe Düzenleyicisi'ni açmak için Düğme'nin yanındaki üç noktaya (...) tıklayın.
Öğ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 olarakID_APP_EXIT
, Resim olarak8
değiştirin.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
mainfrm.h dosyasında, ana çerçevenin sınıf tanımı olan korumalı bölümüne
CMainFrame
bir veri üyesi ekleyin. Bu üye şerit çubuğu içindir.// Ribbon bar for the application CMFCRibbonBar m_wndRibbonBar;
mainfrm.cpp dosyasında, işlevin sonundaki son
return
deyimindenCMainFrame::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
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 olarakIDB_RIBBON_HOMELARGE
, Küçük Görüntüler olarakIDB_RIBBON_HOMESMALL
.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
Edit
değiştirin.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 belirtinClear 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 All
olarak, KimlikID_EDIT_CLEAR_ALL
olarak, Görüntü Dizini olarak0
, Büyük Görüntü Dizini olarak0
değiştirin.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 Aç, 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
İşlevde
CMainFrame::OnCreate
, varsayılan görsel yöneticisini ve stilini değiştirmek için deyimindenreturn 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);
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)