Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Microsoft Foundation Sınıfları (MFC) kitaplığı desteklenmeye devam ediyor. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Microsoft Foundation Sınıf Kitaplığı, yerleşik araç çubuklarını destekler. Sabitlenebilir bir araç çubuğu, ana pencerenin herhangi bir tarafına eklenebilir veya sabitlenebilir ya da kendi mini çerçeve penceresinde çıkarılabilir veya serbest bırakılabilir. Bu makalede uygulamalarınızda yerleşik araç çubuklarının nasıl kullanılacağı açıklanmaktadır.
Uygulamanızın iskeletini oluşturmak için Uygulama Sihirbazı'nı kullanırsanız, sabitlenebilir araç çubukları isteyip istemediğinizi seçmeniz istenir. Varsayılan olarak, Uygulama Sihirbazı uygulamanıza yerleştirilebilir bir araç çubuğu yerleştirmek için gereken üç eylemi gerçekleştiren kodu oluşturur:
Bu adımlardan herhangi biri eksikse, uygulamanız standart bir araç çubuğu görüntüler. Uygulamanızdaki her yerleşik araç çubuğu için son iki adım gerçekleştirilmelidir.
Bu makalede ele alınan diğer konular şunlardır:
Örnekler için bkz. MFC Genel örnek DOCKTOOL .
Çerçeve Penceresinde Kenetlemeyi Etkinleştirme
Araç çubuklarını bir çerçeve penceresine yerleştirmek için çerçeve penceresinin (veya hedefin) yerleştirmeye izin verecek şekilde etkinleştirilmesi gerekir. Bu işlem, çerçeve penceresinin hangi tarafının yerleştirmeyi kabul ettiğini belirten bir dizi stil biti olan bir DWORD parametresini alan CFrameWnd::EnableDocking işlevi kullanılarak yapılır. Bir araç çubuğu yerleştirilmek üzereyse ve yerleştirilebileceği birden fazla taraf varsa, EnableDocking parametresine iletilen kenarlar şu sırada kullanılır: üst, alt, sol, sağ. Denetim çubuklarını herhangi bir yere yerleştirebilmek istiyorsanız, CBRS_ALIGN_ANYEnableDocking'e aktarın.
Araç Çubuğu için Docking'i Etkinleştirme
Yerleştirme için hedefi hazırladıktan sonra, araç çubuğunu (veya kaynağını) benzer şekilde hazırlamanız gerekir. Takmak istediğiniz her araç çubuğu için CControlBar::EnableDocking çağrısı yaparak araç çubuğunun yerleştirileceği hedef tarafları belirtin. Çağrıda CControlBar::EnableDocking belirtilen kenarlardan hiçbiri çerçeve penceresinde yerleştirme için etkinleştirilen taraflarla eşleşmezse, araç çubuğu sabitlenemez; kayar. Yüzer hale getirildiğinde, bir kayan araç çubuğu olarak kalır ve çerçeve penceresine sabitlenemez.
İstediğiniz efekt kalıcı olarak kayan bir araç çubuğuysa, 0 parametresiyle çağırın EnableDocking . Ardından CFrameWnd::FloatControlBar çağrısı yapın. Araç çubuğu kayan kalır, kalıcı olarak herhangi bir yere yerleştirilemiyor.
Araç Çubuğunu Sabitleme
Kullanıcı, araç çubuğunu yerleştirmeye izin veren çerçeve penceresinin bir tarafına bırakmaya çalıştığında çerçeve, CFrameWnd::DockControlBar'ı çağırır.
Buna ek olarak, denetim çubuklarını çerçeve penceresine takmak için istediğiniz zaman bu işlevi çağırabilirsiniz. Bu normalde başlatma sırasında yapılır. Çerçeve penceresinin belirli bir tarafına birden fazla araç çubuğu yerleştirilebilir.
Araç Çubuğunu Hareketli Hale Getirme
Sabitlenebilir bir araç çubuğunu çerçeve penceresinden ayırmaya, araç çubuğunu kaydırmak denir. Bunu yapmak için CFrameWnd::FloatControlBar çağrısı yapın. Kaydırılacak araç çubuğunu, yerleştirilmesi gereken noktayı ve kayan araç çubuğunun yatay mı yoksa dikey mi olduğunu belirleyen bir hizalama stili belirtin.
Bir kullanıcı bir araç çubuğunu yerleşik konumundan sürüklediğinde ve yerleştirmenin etkinleştirilmediği bir konuma düşürdüğünde çerçeve bu işlevi çağırır. Bu, çerçeve penceresinin içinde veya dışında herhangi bir yerde olabilir. gibi DockControlBar, başlatma sırasında da bu işlevi çağırabilirsiniz.
Sabitlenebilir araç çubuklarının MFC uygulaması, yerleşik araç çubuklarını destekleyen bazı uygulamalarda bulunan bazı genişletilmiş özellikleri sağlamaz. Özelleştirilebilir araç çubukları gibi özellikler sağlanmaz.
Araç Çubuğunu Dinamik Olarak Yeniden Boyutlandırma
Visual C++ sürüm 4.0 itibarıyla, uygulamanızın kullanıcılarının kayan araç çubuklarını dinamik olarak yeniden boyutlandırmasını mümkün hale getirebilirsiniz. Genellikle, araç çubuğunun yatay olarak görüntülenen uzun, doğrusal bir şekli vardır. Ancak araç çubuğunun yönünü ve şeklini değiştirebilirsiniz. Örneğin, kullanıcı bir araç çubuğunu çerçeve penceresinin dikey kenarlarından birine yerleştirdiğinde, şekil dikey düzene dönüşür. Araç çubuğunu birden çok düğme satırı içeren bir dikdörtgen olarak yeniden şekillendirmek de mümkündür.
Şunları yapabilirsiniz:
Dinamik boyutlandırmayı araç çubuğu özelliği olarak belirtin.
Sabit boyutlandırmayı araç çubuğu özelliği olarak belirtin.
Bu desteği sağlamak için CToolBar::Create member işlevine yönelik çağrılarınızda kullanılmak üzere iki yeni araç çubuğu stili vardır. Bunlar şunlardır:
CBRS_SIZE_DYNAMIC Denetim çubuğu dinamiktir.
CBRS_SIZE_FIXED Denetim çubuğu sabittir.
Boyut dinamik stili, kullanıcınızın kayan araç çubuğunu yeniden boyutlandırmasına olanak tanır, ancak yerleşik durumdayken yeniden boyutlandırmaz. Araç çubuğu, kullanıcı kenarlarını sürüklerken şekli değiştirmek için gereken yerlerde "kaydırılır".
Sabit boyut stili, her sütundaki düğmelerin konumunu sabitleyerek araç çubuğunun kaydırma durumlarını korur. Uygulamanızın kullanıcısı araç çubuğunun şeklini değiştiremez. Araç çubuğu, düğmeler arasındaki ayırıcıların konumları gibi belirlenen yerlerde kaydırılır. Araç çubuğunun yerleşik veya kayan olmasına bakılmaksızın bu şekli korur. Efekt, birden çok düğme sütunu içeren sabit bir palettir.
Araç çubuklarınızdaki düğmelerin durumunu ve stilini döndürmek için CToolBar::GetButtonStyle'ı da kullanabilirsiniz. Düğmenin stili, düğmenin nasıl görüneceğini ve kullanıcı girişine nasıl yanıt vereceğini belirler; durum, düğmenin sarmalanmış durumda olup olmadığını belirtir.
Fixed-Style Araç Çubuğu için Kaydırma Konumlarını Ayarlama
Boyutu sabit olan bir araç çubuğu için, araç çubuğunun kaydırılacağı araç çubuğu düğme dizinlerini belirleyin. Aşağıdaki kod, ana çerçeve pencerenizdeki OnCreate geçersiz kılmada bunu nasıl yapacağınızı gösterir.
// Get the style of the first button separator
UINT nStyle = m_wndToolBar.GetButtonStyle(3);
// Augment the state for wrapping
nStyle |= TBBS_WRAPPED;
m_wndToolBar.SetButtonStyle(3, nStyle);
// Do the same for other wrap locations ...
// Set the bar style to size fixed
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);
// Call docking/floating functions as needed ...
MFC Genel örnek DOCKTOOL , bir araç çubuğunun dinamik düzenini yönetmek için CControlBar ve CToolBar sınıflarının üye işlevlerinin nasıl kullanılacağını gösterir. DOCKTOOL'daki EDITBAR.CPP dosyasına bakın.