Custom CListBox
Tim Philip -- philip@cs.usask.ca Tuesday, January 02, 1996 I have written a customized CListBox which I subclass in my dialogs. Some of the memebers of this listbox I have made invisible (ie. zero width). However, if the user scrolls through the list using the keyboard it still allows him to select these invisible members. This also screws up scrolling a bit because it will scroll up one invisible member with no visible change in the box. Does anyone have any idea how to catch a selection change from inside the a custom CListBox class? Unfortunately, most of the CListBox functions are non-virtual so I can't just overload them which would solve the problem quite quickly. I *could* catch the selection change in the dialog box (ie. ON_LBN_SELCHANGE) and then check to see if the current item is visible and adjust the list selection, but since I use this listbox in numerous places this seems kind of inefficient. There *has* to be some way to catch this even from within my custom class. Any suggestions would be greatly appreciated. I'm getting really tired of banging my head against the wall. Thanks! ------- Tim Philip, B.Sc. Randco Software Corporation Consultant 2530 Hanover Avenue Saskatoon, SK Phone: +1-306-343-3380 philip@cs.usask.ca Canada S7J 1G1 Fax: +1-306-343-3341
LeRoy Baxter -- lbaxter@cinfo.com Wednesday, January 03, 1996 Maybe it would be more productive to re-evaluate why you are putting invisible items in the listbox. Perhaps you might keep your list outside the listbox, and only put the items you want visible in the ClistBox? On Tuesday, January 02, 1996 6:52 AM, Tim Philip[SMTP:philip@cs.usask.ca] wrote: > >I have written a customized CListBox which I subclass in my dialogs. > >Some of the memebers of this listbox I have made invisible (ie. zero >width). However, if the user scrolls through the list using the >keyboard it still allows him to select these invisible members. This >also screws up scrolling a bit because it will scroll up one invisible >member with no visible change in the box. > >Does anyone have any idea how to catch a selection change from inside >the a custom CListBox class? Unfortunately, most of the CListBox >functions are non-virtual so I can't just overload them which would >solve the problem quite quickly. > >I *could* catch the selection change in the dialog box >(ie. ON_LBN_SELCHANGE) and then check to see if the current item is >visible and adjust the list selection, but since I use this listbox in >numerous places this seems kind of inefficient. There *has* to be >some way to catch this even from within my custom class. > >Any suggestions would be greatly appreciated. I'm getting really tired >of banging my head against the wall. > >Thanks! > >------- >Tim Philip, B.Sc. Randco Software Corporation >Consultant 2530 Hanover Avenue > Saskatoon, SK Phone: +1-306-343-3380 >philip@cs.usask.ca Canada S7J 1G1 Fax: +1-306-343-3341 > >
Andrew Branch -- AndrewB@lpa.com Thursday, January 04, 1996 > Does anyone have any idea how to catch a selection change from inside > the a custom CListBox class? Unfortunately, most of the CListBox > functions are non-virtual so I can't just overload them which would > solve the problem quite quickly. Tim, I think you could override the CWnd::OnChildNotify function in your list box. >From here you should be able to figure out if the selection was changed. Andrew Branch LPA Software abranch@lpa.com
| Вернуться в корень Архива |