Aracılığıyla paylaş


Kullanıcı Tanımlı Araçlar

MFC, kullanıcı tanımlı araçları destekler. Kullanıcı tanımlı araç, dış, kullanıcı tarafından belirtilen bir programı yürüten özel bir komutdur. Kullanıcı tanımlı araçları yönetmek için özelleştirme işlemini kullanabilirsiniz. Ancak, uygulama nesneniz CWinAppEx Sınıfından türetilmemişse bu işlemi kullanamazsınız. Özelleştirme hakkında daha fazla bilgi için bkz . MFC için özelleştirme.

Kullanıcı tanımlı araçlar desteğini etkinleştirdiyseniz, özelleştirme iletişim kutusu otomatik olarak Araçlar sekmesini içerir. Aşağıdaki çizimde Araçlar sayfası gösterilmektedir.

Tools tab in the Customize dialog box.
Özelleştirme iletişim kutusu Araçlar sekmesi

Kullanıcı tanımlı araçlar desteğini etkinleştirme

Bir uygulamada kullanıcı tanımlı araçları etkinleştirmek için CWinAppEx::EnableUserTools çağrısı yapın. Ancak, önce uygulamanızın kaynak dosyalarında bu çağrı için parametre olarak kullanmak üzere birkaç sabit tanımlamanız gerekir.

Kaynak düzenleyicisinde uygun bir komut kimliği kullanan bir sahte komut oluşturun. Aşağıdaki örnekte komut kimliği olarak kullanılır ID_TOOLS_ENTRY . Bu komut kimliği, bir veya daha fazla menüdeki çerçevenin kullanıcı tanımlı araçları eklediği konumu işaretler.

Kullanıcı tanımlı araçları temsil etmek için dize tablosunda bazı ardışık kimlikleri ayırmanız gerekir. Ayırdığınız dize sayısı, kullanıcıların tanımlayabildiği en fazla kullanıcı aracı sayısına eşittir. Aşağıdaki örnekte, bunlar aracılığıyla ID_USER_TOOL10adlandırılırID_USER_TOOL1.

Kullanıcılara, araç olarak çağrılacak dış programlar için dizinleri ve bağımsız değişkenleri seçmelerine yardımcı olacak öneriler sunabilirsiniz. Bunu yapmak için kaynak düzenleyicisinde iki açılır menü oluşturun. Aşağıdaki örnekte bunlar ve IDR_MENU_DIRSolarak adlandırılırIDR_MENU_ARGS. Bu menülerdeki her komut için uygulama dizesi tablonuzda bir dize tanımlayın. Dizenin kaynak kimliği komut kimliğine eşit olmalıdır.

Varsayılan uygulamayı değiştirmek için CUserTool Sınıfından türetilmiş bir sınıf da oluşturabilirsiniz. Bunu yapmak için türetilmiş sınıfınızın çalışma zamanı bilgilerini RUNTIME_CLASS(CUserTool Sınıfı) yerine CWinAppEx::EnableUserTools'da dördüncü parametre olarak geçirin.

Uygun sabitleri tanımladıktan sonra, kullanıcı tanımlı araçları etkinleştirmek için CWinAppEx::EnableUserTools'u çağırın.

Aşağıdaki yöntem çağrısı, bu sabitlerin nasıl kullanılacağını gösterir:

EnableUserTools(ID_TOOLS_ENTRY,
                ID_USER_TOOL1,
                ID_USER_TOOL10,
                RUNTIME_CLASS(CUserTool),
                IDR_MENU_ARGS,
                IDR_MENU_DIRS);

Bu örnekte, Araçlar sekmesi Özelleştirme iletişim kutusuna eklenecektir. Çerçeve, herhangi bir menüdeki komut kimliğiyle ID_TOOLS_ENTRY eşleşen herhangi bir komutu, bir kullanıcı bu menüyü her açtığında geçerli olarak tanımlanmış kullanıcı araçları kümesiyle değiştirir. aracılığıyla ID_USER_TOOL10 komut kimlikleriID_USER_TOOL1, kullanıcı tanımlı araçlar için kullanılmak üzere ayrılmıştır. CUserTool Sınıfı, kullanıcı araçlarına yapılan çağrıları işler. Özelleştirme iletişim kutusunun araç sekmesi, IDR_MENU_ARGS ve IDR_MENU_DIRS menülere erişmek için bağımsız değişken ve dizin girdisi alanlarının sağındaki düğmeler sağlar. Kullanıcı bu menülerden birinden bir komut seçtiğinde, çerçeve, kaynak kimliği komut kimliğine eşit olan dizeyi uygun metin kutusuna ekler.

Önceden tanımlanmış araçları dahil

Uygulama başlangıcında bazı araçları önceden belirlemek istiyorsanız, uygulamanızın ana penceresinin CFrameWnd::LoadFrame yöntemini geçersiz kılmalısınız. Bu yöntemde aşağıdaki adımları gerçekleştirmeniz gerekir.

LoadFrame'e yeni araçlar eklemek için
  1. CWinAppEx::GetUserToolsManager çağrısı yaparak CUserToolsManager Sınıfı nesnesine yönelik bir işaretçi alın.

  2. Oluşturmak istediğiniz her araç için CUserToolsManager::CreateNewTool çağrısı yapın. Bu yöntem, CUserTool Sınıfı nesnesine bir işaretçi döndürür ve yeni oluşturulan kullanıcı aracını iç araç koleksiyonuna ekler. CUserTool Sınıfının türetilmiş bir sınıfı için çalışma zamanı bilgilerini CWinAppEx::EnableUserTools'un dördüncü parametresi olarak sağladıysanız, CUserToolsManager::CreateNewTool bunun yerine bu sınıfın bir örneğini başlatır ve döndürür.

  3. Her araç için öğesini ayarlayarak CUserTool::m_strLabel metin etiketini ayarlayın ve komutunu çağırarak CUserTool::SetCommandayarlayın. Varsayılan CUserTool Sınıfı uygulaması, çağrısında SetCommandbelirtilen programdan kullanılabilir simgeleri otomatik olarak alır.

Ayrıca bkz.

MFC için Özelleştirme
CUserTool Sınıfı
CUserToolsManager Sınıfı
CWinAppEx Sınıfı