Bu notu mfc kontrol çubuğu sınıfları açıklar: genel CControlBar, CStatusBar, CToolBar, CDialogBarve CDockBar.
Bir ControlBar bir CWndolduğunu-türetilmiş sınıf,:
Kontrol çubukları ek stil desteği:
CControlBar türetilmiş sınıflar daha ilginç uygulamaları sağlamak:
Tüm denetim çubuğu nesneleri/windows alt pencereleri bazı üst çerçeve penceresi olacak. Bunlar genellikle bir kardeş çerçeve (örneğin, bir MDI istemci veya Görünüm) istemci alanına eklenir. Bir denetim çubuğunun alt pencere kimliği büyük/küçük harf önemlidir. Denetim çubuğunda varsayılan düzenini yalnızca AFX_IDW_CONTROLBAR_FIRST için AFX_IDW_CONTROLBAR_LASTaralığında kontrol çubukları kimlikleri ile çalışır. 256 Denetim aralığı olsa dikkat ediniz çünkü onlar doğrudan baskı önizleme mimarisi tarafından desteklenen kimlikleri, bu denetim çubuğunun ilk 32 kimlikleri özel.
CControlBar sınıfı için standart uygulama verir
C++ kontrol çubuğu nesneleri, genellikle bir CFrameWnd üyeleri, türetilmiş sınıf ve üst hwnd ve nesne yok olduğunda temizlenmesinin gibi katıştırılır. Öbek üzerindeki bir denetim çubuğu nesneye ayırmanıza gerek, sadece m_bAutoDestruct üye hwnd tahrip kontrol çubuğu "silmek bu" yapmak için doğru ayarlayabilirsiniz.
Ö&nemlinbsp; Eğer sen kendi CControlBaryaratmak-MFC's birini kullanmak yerine, türetilmiş bir sınıf türetilmiş sınıflar, CStatusBar, CToolBarya da CDialogBargibi sen-ecek lüzum-e m_dwStyle veri kümesi. Bu-ebilmek kılınmak yarat OVERRIDE içinde:
/ / CMyControlBar türetilmiş CControlBar
bool CMyControlBar::Create (CWnd * pParentWnd, dword dwStyle, UI&NT nID)
{
nbsp; m_dwStyle = dwStyle;
.
.
.
}
Kontrol çubuğu düzeni algoritması
Kontrol çubuğu düzeni algoritması çok basittir. Çerçeve penceresi, tüm çocuklar için denetim çubuğunu aralığında WM_SIZEPARENT ileti gönderir. Bu ileti ile birlikte, ebeveynin istemci dikdörtgen bir işaretçi geçirilir. Bu ileti, çocuklara z ekseninde gönderilir. Kontrol çubuğu çocuklar, kendilerini ve ebeveynin istemci alanının boyutunu azaltmak için bu bilgileri kullanın. Normal istemci alanı (daha az kontrol çubukları) için kalan son dikdörtgen Ana istemci penceresi (genellikle bir MDI istemcisi, görünüm veya kırık pencere) konumlandırmak için kullanılır.
Daha fazla bilgi için bkz: CWnd::RepositionBars ve CFrameWnd::RecalcLayout.
Mfc özel Windows mesajları, WM_SIZEPARENT, dahil olmak üzere Teknik Not 24 ' de belgelenen.
Durum çubuğu metin çıkış bölmeleri bir dizi olan denetim bir çubuktur. Metin çıkış bölmeleri kullanmak için iki yaygın yolu vardır:
(örneğin, standart menü Yardım iletisi çizgi). Bunlar genellikle bir 0 tabanlı tarafından dizine erişilir
(örneğin, cap, num scrl göstergeleri). Bunlar genellikle string/komut kimliği tarafından erişilen.
Durum çubuğu için yazı tipi, 10 punto "ms Sans Serif hakları (Windows arabirimi uygulama tasarım kılavuzu veya 10 punto İsviçreli orantılı bir yazı tipi, yazı tipi mappers en uygun tarafından dikte)" olduğunu. Seçilen fontlar Windows, belirli sürümlerinde Windows 4.0 ve Japonya basımı gibi farklı.
Durum çubuğunda kullanılan renkleri de Windows arabirimi uygulama Tasarım Kılavuzu recomendation ile tutarlıdır. Bu renkler değil sabit kodlanmıştır ve dinamik olarak yanıt olarak Denetim Masasındaki kullanıcı özelleştirme değiştirilir.
| Madde | Windows renk değeri | Varsayılan rgb |
| Durum çubuğu arka planı | COLOR_BTNFACE | RGB (192, 192, 192) |
| Durum çubuğu metni | COLOR_BTNTEXT | RGB (000, 000, 000) |
| Durum çubuğunu sol-üst kenarlar | COLOR_BTNHIGHLIGHT | RGB (255, 255, 255) |
| Durum bot/sağ kenar çubuğu | COLOR_BTNSHADOW | RGB (128, 128, 128) |
CStatusBar CCmdUI destek
Göstergeler genellikle güncelleştirilir ON_UPDATE_COMMAND_UI mekanizması ile yoludur. Boş zaman, durum çubuğu göstergesi bölmesinin dize kimliği ile ON_UPDATE_COMMAND_UI işleyiciyi çağırır.
ON_UPDATE_COMMAND_UI işleyicisi arayabilirsiniz:
Sınıf CStatusBar Sınıf kitaplığı başvuru CStatusBar oluşturma ve özelleştirme API'leri hakkında ayrıntılı bilgi için bakınız. Durum çubuğu başlangıçta görünür yapılmadan önce çoğu durum çubuklarını özelleştirme yapılmalı.
Durum çubuğu, tek stretchy bölmesi, genellikle ilk bölme destekler. Söz konusu gerçekten en az boyutu boyutudur. Durum çubuğu tüm bölmeleri en küçük boyuttan daha büyük ise, herhangi bir ekstra genişlik stretchy bölmesine verilecektir. İlk bölme stretchy olduğundan durum çubuğunda varsayılan uygulamayla kap, num ve scrl için sağa hizalanmış göstergeleri vardır.
Bir denetim çubuğu ayırıcı içerebilir bit eşlem düğmelerini satırı ile bir araç çubuğudur. İki stil düğmelerini desteklenir: butonları ve onay kutusunu düğmeleri. Radyo grubu işlevselliği onay kutusunu düğmeleri ve ON_UPDATE_COMMAND_UI ile inşa edilecek.
Tüm bit eşlem düğmeler araç çubuğunda bir bitmap alınır. Bu bit eşlemi, bir resim veya simge her düğmenin içermelidir. Genellikle bitmap görüntüleri/glifleri aynı sırada ekranda çizilecektir sırasıdır. (Bu özelleştirme API kullanılarak değiştirilebilir.)
Her düğme aynı boyutta olmalıdır. Standart 24 x 22 piksel varsayılandır. Her resim veya simge aynı boyutta olmalı ve yan yana olmalıdır Bitmapteki. Varsayılan görüntü/simge boyutu 16 x 15 pikseldir. Bu nedenle, 10 düğmeleri (standart boyutları kullanarak) bir araç için 160 piksel genişliğinde ve 15 piksel yüksekliğinde bir bitmap gerekir.
Her düğme, yalnızca bir görüntü/glif vardır. Farklı düğme durumları ve stilleri (bastırdı, kadar örneğin aşağı, Engelli, belirsiz, Engelli) tek bir görüntü/glif yaparız oluşturulur. Herhangi bir renkli bitmap veya DIB teorik olarak kullanılabilir. Orijinal görüntüyü gri tonları ise farklı bir düğmeyi üreten algoritma işleri iyi devletler. Standart araç çubuğu düğmeleri ve mfc genel örneklemde sağlanan araç çubuğu düğmesi clipart bak küçük resim örnekleri.
Araç çubuğunda kullanılan renkleri de Windows arabirimi uygulama Tasarım Kılavuzu önerisi ile tutarlıdır. Bu renkler değil sabit kodlanmıştır ve dinamik olarak yanıt olarak Denetim Masasındaki kullanıcı özelleştirme değiştirilir.
| Madde | Windows renk değeri | Varsayılan rgb |
| Araç çubuğu arka planı | COLOR_BTNFACE | RGB(192,192,192) |
| Araç çubuğu düğmeleri sol-üst kenarlar | COLOR_BTNHIGHLIGHT | RGB(255,255,255) |
| Araç çubuğu düğmelerini bot/sağ kenarlar | COLOR_BTNSHADOW | RGB(128,128,128) |
Ayrıca, standart Windows düğme denetimleri sanki araç çubuğu bit eşlem düğmelerini renklendirilen. Bu recoloring bite?lemin kaynak ve yanıt olarak kullanıcı özelleştirme Denetim Masasındaki Sistem renklerini bir değişiklik karşısında yüklendiğinde oluşur. Çok dikkatli kullanılması gereken araç bit eşlem aşağıdaki renkleri otomatik olarak renklendirilen. Sonra bir bölümünü renklendirilen eşleminiz istemiyorsanız yakından eşleşen rgb değerlerinden yaklasik bir renk kullanın. Eşleme tam rgb değerlerine göre yapılır.
| Rgb değeri | Dinamik olarak eşlenen renk değeri |
| RGB (000, 000, 000) | COLOR_BTNTEXT |
| RGB (128, 128, 128) | COLOR_BTNSHADOW |
| RGB (192, 192, 192) | COLOR_BTNFACE |
| RGB (255, 255, 255) | COLOR_BTNHIGHLIGHT |
Sınıf CToolBar Sınıf kitaplığı başvuru CToolBar oluşturma ve özelleştirme API'leri hakkında ayrıntılı bilgi için bakınız. Araç başlangıçta görünür yapılmadan önce araç çubuklarının çoğu özelleştirme yapılmalı.
API, düğmenin kimlikleri, stilleri ayarlamak için kullanılabilir özelleştirme ayırıcı genişlik ve hangi resim veya simge için ne düğmesi kullanılır. Varsayılan olarak bu API'leri kullanan gerekmez.
CToolBar CCmdUI destek
Araç çubuğu düğmeleri her zaman güncelleştirilir ON_UPDATE_COMMAND_UI mekanizması ile yoludur. Boş zaman, araç çubuğu düğmesini komut kimliği ile ON_UPDATE_COMMAND_UI işleyiciyi çağırır. ON_UPDATE_COMMAND_UI için ayırıcı olarak değil, ama bu butonları ve onay kutusunu düğmeleri denir.
ON_UPDATE_COMMAND_UI işleyicisi arayabilirsiniz:
Onay kutusunu "Otomatik" onay kutusunu düğmeleri düğmelerdir; Kullanıcı bunları bastığında, onlar hemen durumu değişir. Aşağı ya da depresif durumu kontrol edilir. Düğme "belirsiz" durumuna değiştirmek için hiçbir şekilde yerleşik kullanıcı arabirimi; kod üzerinden yapılması gereken.
Özelleştirme API belirli araç çubuğu düğmesi durumunu değiştirmek için izin verir, tercihen bu devletlerin ON_UPDATE_COMMAND_UI işleyicisinde araç çubuğu düğmesini gösteren komut değiştirmelisiniz. Unutmayın, boşta işlemi, araç çubuğu düğmeleri ile ON_UPDATE_COMMAND_UI işleyicisi devlet değişecek, bu durum SetButtonStyle ile yapılan değişiklikler sonraki sonra kaybolmak bu yüzden işsiz.
Araç çubuğu düğmeleri-ecek göndermek wm_command mesaj ve normal düğme veya menü öğelerinden gibi normal bir on_command işleyicisi ON_UPDATE_COMMAND_UI işleyici sağlar aynı sınıfta tarafından işlenir.
Orada görüntü durumları için kullanılan dört araç çubuğu düğme stilleri (tbbs_ değerler):
Altı resmi Windows arabirimi uygulama Tasarım Kılavuzu düğme stilleri aşağıdaki tbbs değerleriyle gösterilir:
Standart Windows denetimleri içeren bir kontrol çubuğu iletişim çubuktur. Bu denetimleri içerir ve bunlar arasında sekme destekler, bir iletişim kutusu gibi davranır. Bu çubuğu göstermek için iletişim şablon kullanır da bir iletişim gibi davranır.
CDialogBar standart buton denetimleri içeren baskı önizleme araç için kullanılır.
Bir CDialogBar kullanarak bir CFormViewgibi kullanmaktır. İletişim çubuğu iletişim şablonu tanımlamak ve WS_CHILDhariç tüm stilleri kaldırmak gerekir. Not iletişim kutusu görünür olmamalıdır.
Kontrol çubuğu (araç çubuğu düğmeleri gibi) üst bir CDialogBar denetimi bildirimleri gönderilecektir.
CDialogBar CCmdUI destek
İletişim çubuğu düğmelerini ON_UPDATE_COMMAND_UI işleyicisi mekanizması ile &güncelleştirilmelidir. Boş zaman, iletişim çubuk ID gt; sahip tüm düğmeleri komut Kımlığı ile ON_UPDATE_COMMAND_UI işleyiciyi çağırır = 0x8000 (başka bir deyişle, komut kimliklerini aralığında).
ON_UPDATE_COMMAND_UI işleyicisi arayabilirsiniz:
Özelleştirme standart pencere Yöneticisi API'leri aracılığıyla yapılabilir.
Teknik notlar numarasına göre |nbsp; Teknik notlar kategorisine göre