CToolBarCtrl: Özelleştirme bildirimleri işleme

Windows araç çubuğunun Ortak denetim eklemek, silmek veya araç çubuğu düğmeleri yeniden düzenleme için kullanıcı izin veren bir sistem tanımlı özelleştirme iletişim kutusu yerleşik özelleştirme özellikleri vardır. Özelleştirme özellikleri kullanılabilir ve kullanıcı araç çubuğunu özelleştirebileceğinizi ölçüde denetleyen uygulama belirler.

Bu özelleştirme özellikleri mevcut kullanıcıya ccs_adjustable tarzı araç vererek yapabilirsiniz. Özelleştirme özellikleri kullanıcının bir düğmeyi yeni konumuna sürükleyin veya araç çubuğundan sürükleyerek bir düğmeyi kaldırmak için izin. Ayrıca, kullanıcı hangi bırakmak kullanıcı-e doğru eklemek, silmek ve araç çubuğu düğmeleri yeniden düzenleme araç çubuğunu Özelleştir iletişim kutusunu görüntülemek için araç çubuğunu çift tıklatabilirsiniz. Uygulama Özelleştirme üye işlevini kullanarak iletişim kutusunu görüntüleyebilirsiniz.

Toolbar denetiminin üst pencereyi özelleştirme sürecinin her adımında bildirim iletileri gönderir. Kullanıcı SHIFT tuşunu tutar ve bir düğmeyi sürükleyerek başlar, araç çekme işlemi otomatik olarak yönetir. Araç çubuğu, düğme silinebilir olup olmadığını belirlemek için üst pencereye tbn_querydelete bildirim iletisi gönderir. Ana pencere falsedöndürür çekme işlemi sona erer. Aksi takdirde, araç fare girişi yakalar ve fare düğmesini serbest bırakmak kullanıcı için bekler.

Kullanıcı fare düğmesini serbest bıraktığında toolbar denetiminin fare imlecinin konumunu belirler. İmleci araç dışında ise, düğme silinir. İmleci başka bir araç çubuğu düğmesi üzerinde değilse, araç verilen düğmenin soluna bir düğme takılı belirlemek için ana pencere TBN_QUERYINSERT bildirim iletisi gönderir. Ana pencere truedönerse düğmesi eklenir; Aksi durumda değil. Araç çekme işlemi sonunda sinyal tbn_toolbarchange bildirim iletisi gönderir.

Kullanıcı bir çekme işlemi SHIFT tuşunu basılı tutmadan başlıyorsa, toolbar denetiminin sahibi pencereye TBN_BEGINDRAG bildirim iletisi gönderir. Düğmeyi sürükleyerek kendi kodu uygulayan bir uygulama bu iletiyi sürükleme işlemine başlamak için bir sinyal kullanabilirsiniz. Araç çekme işlemi sonunda sinyal tbn_enddrag bildirim iletisi gönderir.

Bir araç çubuğu denetimi kullanıcı araç çubuğu araç çubuğunu Özelleştir iletişim kutusunu kullanarak özelleştirir bildirim iletileri gönderir. Araç, sonra kullanıcı araç çubuğu çift tıklattığında, ama önce iletişim kutusu oluşturulur TBN_BEGINADJUST bildirim iletisi gönderir. Daha sonra araç bir dizi araç çubuğu düğmeleri eklenecek izin verip vermediğini belirlemek için TBN_QUERYINSERT bildirim iletileri gönderme başlar. Ana pencere truedöner araç TBN_QUERYINSERT bildirim iletileri göndermeyi durdurur. Ana pencere doğru herhangi bir düğmeye için döndürmezse, araç iletişim kutusu yok.

Sonra araç çubuğu denetimi düğmeleri araç çubuğu'ndan araç çubuğundaki her düğme için bir tbn_querydelete bildirim iletisi göndererek silinebilir olmadığını belirler. Ana pencerede düğme silinebilir belirtmek için true döndürür; Aksi takdirde falsedöner. Araç çubuğu tüm araç çubuğu düğmelerini iletişim kutusuna ekler, ancak o da silinemeyebilir grays.

Her araç çubuğu denetimi araç çubuğunu Özelleştir iletişim kutusundaki bir düğme hakkında bilgi gerektiğinde, bilgi ihtiyacı düğmesi dizin ve bir TBNOTIFY yapısı adresini belirtme TBN_GETBUTTONINFO bildirim iletisi gönderir. Ana pencere yapısı ile ilgili bilgileri doldurmanız gerekir.

Araç Çubuğunu Özelleştir iletişim kutusuna bir Yardım düğmesi ve Sıfırla düğmesi içerir. Kullanıcı Yardım düğmesini seçtiğinde, toolbar denetiminin tbn_custhelp bildirim iletisi gönderir. Ana pencere, Yardım bilgilerini görüntüleyerek yanıt vermelidir. İletişim kutusu, kullanıcı Sıfırla düğmesini seçer tbn_reset bildirim iletisi gönderir. Hakkında iletişim kutusunu yeniden başlatmak için araç olduğunu bu iletiyi sinyalleri.

Bu iletiler tüm WM_NOTIFY mesaj vardır ve onlar sahibi pencerenizde sahibi penceresinin ileti göster için mesaj-eşleme girdilerini aşağıdaki biçimde ekleyerek ele alınabilir:

ON_NOTIFY ( wNotifyCode, idControl, memberFxn )

wNotifyCode

Bildirim iletisi tanımlayıcı kodu, TBN_BEGINADJUST gibi.

idControl

Bildirim gönderme denetim tanıtıcısı.

memberFxn

Bu bildirimi alındığında çağrılacak üye işlevi.

Üye işlevi aşağıdaki prototip ile ilan:

afx_msgvoidmemberFxn()nmhdr * pNotifyStruct,lresult*sonucu);

Bildirim ileti işleyicisi bir değer döndürürse, bu sonucu tarafından işaret lresult koymak.

Her ileti için bir nmhdr yapısı ya da bir TBNOTIFY yapısı pNotifyStruct işaret eder. Bu yapılar aşağıda açıklanmıştır:

nmhdr yapısı aşağıdaki üyeler bulunur:

typedef struct tag&NMHDR {}
hwnd hwndFrom; nbsp; / / kontrol kolu ileti gönderme
UINT idFrom; / / denetim tanıtıcısı ileti gönderme
UINT kodu;  / / bildirim kodu; aşağıya bakınız
} NMHDR

hwndFrom

Bildirim gönderme denetimin pencere tanıtıcısı. Bu tanıtıcı CWnd işaretçisi dönüştürmek için CWnd::FromHandle kullanın.

idFrom

Bildirim gönderme denetim tanıtıcısı.

kodu

Bildirim kodu. Bu-ebilmek var olmak TBN_BEGINADJUST ya da ttn_needtext, gibi bir denetim türü için belirli bir değer veya aşağıda listelenen genel bildirim değerlerden biri olabilir:

TBNOTIFY yapısı aşağıdaki üyeler bulunur:

typedef struct {}
nmhdr hdr; / / tüm WM_&NOTIFY mesajlar için ortak bilgiler
int iItem; / / düğme dizin ilgili bildirim
tbbutton tbButton; / / düğmesi hakkında bilgi: bildirim ile ilişkili
int cchText; nbsp;  / / Düğme metin karakter sayısı
lpstr lpszText; / / adres düğmesini metin
} TBNOTIFY, ÇOK * LPTBNOTIFY

hdr

Tüm WM_NOTIFY mesajlar için ortak bilgiler.

iItem

Bildirim ile ilişkili düğme dizin.

tbButton

Bildirim ile ilişkili araç çubuğu düğmesi hakkında bilgi içeren tbbutton yapısı.

cchText

Düğme metin karakter sayısı.

lpszText

İşaretçi düğme metni.

Araç gönderir bildirimleri aşağıdaki gibidir.:

Index