zben@ni.umd.edu (Ben Cranston) (06/27/91)
When I added Balloon Help to my application there appeared a variety of situations in which several balloons alternated with each other at essentially event-handling speed. This application is built upon modeless dialogs. It appears there are at least two "gotcha" situations happening. 1. Idle events passed to IsDialogEvent cause balloon processing for modeless dialog items, even if the dialog belongs to a background application and even if the dialog is entirely covered up by a foreground window. 2. Window movement in foreground application can cause update events to be sent to a background application. When the background application calls IsDialogEvent on the update event, balloon processing occurs. I addressed item 1 by inhibiting the passing of idle events to IsDialogEvent when the application is in background. This seems to work. I tried addressing item 2 by specifying the "hmSaveBitsNoWindow" option on the balloon help resource. I still get a few cases of two balloons jogging back and forth in a 1-2-1 pattern (that is, one balloon, a second balloon, then the first balloon again, which stays). What is worse, eventually I get a Bus Fault at StripAddress plus about 400 or so. Has anybody else seen this problem?