I am playing with the GoTool<SPAN =highlight>RubberBanding and the GoToolZooming tools.
The zooming function works within reason, but the bounding box never shows. I drag the mouse over a portion of my display and release the mouse. No XOR is occurring to paint the selection rectangle as I move the mouse.
When I release the mouse button, the view zooms into almost what I had assumed was bounded by the area I selected.
So, I am sure I have something wrong. Any Hints?
BTW, I am using C#, VS 2003, GoDiagrami Win 2.3.1
The only use of GoToolZooming that is default behavior is as a modeless tool in GoOverview.
The only use of GoToolZooming in the samples is in WebWalker, as a modal tool.
Can you see the rectangle drawn by GoView.DrawXorBox in both of those cases?
I can see the rectangle in the WebWalker fine.
I will play with that source and see what differences there are.
BTW, that was a quick response. Thanks!!!
If I show the GoOverview window like the webwalker does, the rectangle shows in the overview.
I took the code from the webwalker (toolBar1_ButtonClick, case 22: ZoomTool) and put it into my code, and the rectangle never shows, but the windows zooms
I also never see a selection rectangle if I leave everything default and never try to change the .Tool on the view.
Just some differences in my code.
My window hierarchy has the GoView hosted in a panel, hosted in a User Control, that is hosted in the form.
I also have
this.SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true );
within the form. I toggled that on and off and it didnt make a difference
I don’t think that would explain it.
Certainly the rubber-band selection tool draws correctly for me when the GoView is in a UserControl that is hosted either by a WinForms Form or by Internet Explorer.
Are there any other differences? How could I reproduce the problem?
Sorry, got real busy for a bit there.
Let me do some more tests and see if I can get a simple example that works and doesnt work. The one I am testing in is loaded with a bunch of other stuff that is not related to the problem at hand.
Thanks for the help
Well I finally figured it out.
What was happening was this. I use the Opaque property on my forms to fade in the application at startup. I start it at 0, and then using a timer I gradually change it to 1.0 ( fully opaque ) to “fade In” the application.
Neat effect. the problem is, once you have messed with the opaque property, the ControlPaint.DrawReversibleFrame ends up displaying behind your frame, no matter what you set it to.
Try this. On a form that contains a GoView, using the designer, set the Opaque property to 0%, then just after the “Initiaiize Component” call, set it to 1.0. And you can see the effect.
That was a fun one to find.
If you get the latest 2.3.1 kit, we changed the implementation of GoView.DrawXorBox to either do what it used to do, or to draw a regular rectangle if GoView.DrawsXorMode is false. That’s an undocumented property that will be documented in the next release, along with improvements in its implementation.
We added that to fix a different bug regarding XOR-drawn rectangles, but perhaps you could use it too.