02-13-2006 01:34 PM
02-13-2006 03:15 PM
02-13-2006 03:22 PM
02-13-2006 03:29 PM
The panel the control is on also gets some of the events that a control gets. I am assuming that when the panel gets the EVENT_LEFT_CLICK it causes the panel to redraw as the active panel.
ProcessDrawEvents() would be placed right at the end of your control callback.
02-13-2006 03:34 PM
02-13-2006 05:19 PM
As far as I can imagine, your problems probably lies in how the ring control manages the EVENT_LEFT_CLICK event. In my opinion this event is processed BEFORE the user interface pops up the list of possible choices the ring includes, and this is to permit to the program to discard this event (swallow it) if for some reasons the programmer wants so. What may be happening is this:
1, The user clicks on the ring: a LEFT_CLICK events is fired and the callback is executed
2. In the callback the new panel is loaded and displayed. The event is not swallowed
3. The list of choices of the ring is showed in the panel that holds the ring: this implicitly sets this panel as the topmost one, thus hiding the second panel loaded
Since it is the normal behaviour that a ring shows the list of choices when clicked on, you will need to find a different moment for displaying the second panel.
02-13-2006 06:27 PM
Roberto,
Thanks for your response and for your explanation. I actually cannot find a different moment for displaying the second panel because I am password protecting my widget. So before a user can select a value from the edit ring, they need to enter in a password.
I tried the suggestions of adding in a SetActivePanel and a ProcessDrawEvents call before the DisplayPanel call. Now the panel shows up on top for a split second, then moves to the back.
I may have to change the type of widget but I sure hate to because I have screen shots made in a User's manual and it is a lot of work.
Thanks,
Donna
02-13-2006 11:43 PM
02-14-2006 02:12 AM - edited 02-14-2006 02:12 AM
Message Edited by Roberto Bozzolo on 02-14-2006 09:15 AM
02-14-2006 02:11 PM