One of the critical issues in Control development for windows is where a REALcontrol will live in:
1) In a true window (Window1) 2) In a PagePanel 3) In a tabpanel 4) In a RectControl 5) In a ContainerControl Yes 5 different issues, depending on what the REALcontrol-in- development will do. For the sake of simplicity, 2-4, and 5 can be treated as one, while 5 has a particular limitation. On windows we are creating a childHWND with the REALcontrolHWND as parent, and then subclass the REALcontrolHWND to receive messages from the childHWND and respond accordingly. How we respond depends on where the REALcontrol will live. In case 1, MouseDowns and KeyDowns are being received and consumed by the childHWND and these events are never reaching the parent (the REALcontrol), unless we redirect these messages. From the point of our plugins, this is the desired behavior, and corresponds to the notion that a child should receive messages first. However, when the REALcontrol lives elsewhere (cases 2-5), the child is not receiving any mouse or key messages (a behavior corresponding to what is always going on on the mac (with one exception)). We either are forced to utilize the REALcontrolBehavior Callbacks to send messages to the ChildHWND, or use the subclassed parent WndProc to redirect WIN messages to the child. How can we determine this difference? And how can we discriminate a REALcontrol embedded in a panel from not embedded in a panel? In the latter case we would like to fool the RBRuntime with a partly overlapping REALcontrol on a panel, telling the RBRuntime not to treat the REAlcontrol as part of a panel. Once the panel and REALcontrol are created we want to move the REALcontrol within the bounds of a panel and utilize the Changed event of the panel to hide or show the REALcontrol. (This partly overlapping "would be" trick, does not seem to work in a CC). Is the above intended behavior, how should we code around it (should we?), and how can we discriminate? Alfred _______________________________________________ Unsubscribe or switch delivery mode: <http://www.realsoftware.com/support/listmanager/> Search the archives: <http://support.realsoftware.com/listarchives/lists.html>
