Explorer tarzı özel şablonlar

Bir Explorer tarzı veya farklı Kaydet iletişim kutusunda ek denetimleri tanımlamak için ek denetimleri içeren çocuk iletişim kutusu için bir şablon belirtmek için OPENDOSYAADI yapısını kullanır. Çocuk iletişim şablonunuza kaynak uygulamada veya dinamik bağlantı kitaplığı bayrakları üye ofn_enabletemplate bayrağı ayarlanmış ve yapısını HINSTANCE ve lpTemplateName üyeleri modül ve kaynak adını belirlemek için kullanın. Şablon bellekte ise, ofn_enabletemplatehandle bayrağını ayarlayın ve HINSTANCE üye şablonu içeren bellek nesnesi tanımlamak için kullanılır. Bir çocuk bir Explorer Stili iletişim kutusunda iletişim şablon sağlanırken, da ofn_explorer bayrak ayarlamanız gerekir; Aksi takdirde, sistem bir eski stil iletişim kutusunu değiştirme şablonu verilmemektedir varsayar. Ek denetimler sağlarsanız, genellikle de bir Explorer tarzı kanca yordamı işlem iletileri için yeni denetimleri sağlamalısınız.

Başka bir şablon gibi WS_CHILD ve WS_CLIPSIBLINGS stilleri belirtmeniz gerekir ve DS_3DLOOK ve ds_control stilleri belirtmeniz, çocuk iletişim kutusunda şablonu oluşturabilirsiniz. Şablonunuzu varsayılan veya farklı Kaydet iletişim kutusunun alt iletişim tanımladığından sistem WS_CHILD stilini gerektirir. WS_CLIPSIBLINGS stili, çocuk iletişim kutusu denetimleri varsayılan iletişim kutusunda üzerinde boya değil ki sağlar. DS_3DLOOK stili çocuk iletişim kutusundaki denetimlerin görünümünü varsayılan iletişim kutusu denetimleri ile tutarlı olmasını sağlar. ds_control stili kullanıcı tüm denetimleri, varsayılan veya özel iletişim kutusunda, özel arasında hareket etmek için sekme ve diğer gezinti tuşları kullanabileceğiniz sağlar.

Yeni denetimlerini açmak için varsayılan iletişim kutusu genişliği ve yüksekliği özel iletişim kutusunun sistem genişletir. Varsayılan olarak, tüm denetimlerin özel iletişim kutusundan konumlandırılmış aşağıda olan varsayılan iletişim kutusu denetimleri. Ancak, bu varsayılan statik metin denetimi dahil, özel iletişim kutusu şablonunda ve stc32 denetim tanımlayıcı değerini atayarak konumlandırma kılabilirsiniz. (Bu değer dlg içinde tanımlanır.h başlık dosyasına bakınız.) Bu durumda, sistem yeni denetimler konumuna yeri belirlemek için Denetim başvuru noktası olarak kullanır. Stc32 kontrol solundaki ve üstündeki tüm yeni denetimlere konumlandırılmış varsayılan iletişim kutusundaki denetimlerin solundaki ve üstündeki aynı miktarda. Yeni denetimleri altında ve sağında yer stc32 kontrol altında ve varsayılan denetimleri sağa yerleştirilir. Genel olarak, her yeni denetim varsayılan denetimleri olarak stc32 denetlemek için vardı'na göre aynı konuma sahip olması yer alıyor. Bu yeni denetimler yer açmak için sistem alanı sol, sağ, alt ve gerektiği gibi varsayılan iletişim kutusunun üst kısmındaki ekler.

Sistem için özel iletişim kutusundaki amaçlanan tüm iletileri işlemek için kanca işlemi gerektirir ve bu nedenle başka bir iletişim kutusu yordamı için kanca işlemi aynı pencere iletilerini gönderir. Örneğin, düğme denetimlerinin özel iletişim kutusundaki Kullanıcı tıklattığında kanca işlemi wm_command iletileri alır. Kanca işlemi, bu denetimleri başlatılıyor ve iletişim kutusu kapatıldığında, denetimler değerleri alma sorumludur. Kanca işlemi WM_INITDIALOG iletiyi aldığında, sistem henüz denetimleri son konumlarına taşındığı değil Not.

İletilerin varsayılan iletişim kutusunda tüm denetimler için varsayılan iletişim kutusunu yordamı işler, ama kanca işlemi alır WM_NOTIFY bildirim iletileri için Explorer tarzı kanca yordamları açıklandığı gibi bu denetimleri kullanıcı eylemleri.