15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Reusing a dialog box

snkavuri@amoco.com
Thursday, January 04, 1996

     A couple of questions:
     
     (1) I have a dialog box that has list boxes with a *lot* of entries.
     It takes time to create and display them.  In X (Xt) I could 
     manage and unmanage the dialog box and reuse it.  Can we do this
     in Windows too ? Is there a nice way to do this in MFC (using
     VC++ framework) ?
     
     (2) I have an arrangement of control elements that repeats in 
     many dialog boxes.  I wish to create a class which encapsulates
     the behavior of this arrangement.  It is not clear, however, 
     how I can do this nicely in the dialog box editor ?  At the
     time of creation of the dialog box, what does it need to know
     about the control elements in the arrangement ?
     
     Thanks
     
     Surya N. Kavuri



dhylands@creo.bc.ca
Thursday, January 04, 1996

[Mini-digest: 3 responses]

> A couple of questions:
> 
> (1) I have a dialog box that has list boxes with a *lot* of entries. It takes 
> time to create and display them.  In X (Xt) I could 
> manage and unmanage the dialog box and reuse it.  Can we do this in Windows
> too ? Is there a nice way to do this in MFC (using VC++ framework) ?

You could create an owner-draw listbox. Then you would have some underlying data
structure which you shared between the ListBox controls on the various dialogs. 
I think that you still need to add elements individually though. You should make
sure that the ListBox redraw is turned off while adding the items, and then when
you turn it on you have to invalidate the listbox window (if memory serves me 
correctly). If you really need the extra performance you'll prbably need to 
implement your own custom control which can read your data structure without 
having to add the items individually. Once you've got the owner-draw part 
happening you've already done alot of the work.

> (2) I have an arrangement of control elements that repeats in many dialog
> boxes.  I wish to create a class which encapsulates the behavior of this
> arrangement.  It is not clear, however, how I can do this nicely in the dialog
> box editor ?  At the time of creation of the dialog box, what does it need to
> know about the control elements in the arrangement ?

You can do this by using "Dynamic" dialogs. These are basically windows where 
you add the controls after the fact. I used dialog resources as templates for 
where the controls would go and then read the template myself and constructed 
the windows (controls) as part of creating the dialog. This works pretty slick, 
although there is some effort required to get it all working properly.

> Thanks
>
> Surya N. Kavuri

Dave Hylands      Email: (dhylands@creo.bc.ca)      3700 Gilmore Way
Software Developer  Tel: (604) 451-2700 (ext. 2329) Burnaby B.C. (Canada)
CREO Products Inc.  Fax: (604) 437-9891             V5G 4M1

-----From: bibhas@hermes (Bibhas Bhattacharya)
Content-Type: text/plain; charset=US-ASCII




| Вернуться в корень Архива |