Problems with FF2 (midi/child redraw)

Started by tom bon, April 26, 2005, 09:17:59 PM

Previous topic - Next topic

tom bon

hi,

after converting a midi-form project to FF2 I have problems with the redraw
of the midi form. when moving a child-form within the midi, the midi don't redraw, so the midi looks dirty after moving a child.
If I resize the midi it will redraw and clear but only at resizing.
have tried to set the redraw properties etc, even some combination of all but still remains. any idea what's wrong ?

at least the new FF2 runs & compile much faster, very good work !
tom

TechSupport

Hi Tom,

Any chance that you can email me the project so I can take a look at it? If you prefer not to then maybe you can email me just the main Form's *.frm file. That way I can see how the form is set up and then I'll try to duplicate the problem with a temporary project.

David Martin

Paul,

I am having this same problem.

It also cleans up if I bring another applications window in front of it and then bring it back forward.

Did you ever come up with a solution?

Thanks,

TechSupport

Hi David,

I can not test this for a while (sorry). In the meantime, you can check the WindowStyles for your Forms to see if WS_CLIPSIBLINGS and WS_CLIPCHILDREN are checked. Those settings may or may not help. Also, check the Class Styles to see if CS_HREDRAW and/or CS_VREDRAW are checked.

David Martin

Paul,

Quote from: TechSupportWS_CLIPSIBLINGS

Had no effect.

Quote from: TechSupportWS_CLIPCHILDREN

Caused the program to flash on the screen and then only leave a partial image and not be usable at all.

Quote from: TechSupportCS_HREDRAW and/or CS_VREDRAW

These were already checked.

Thanks,

TechSupport

Hi David,

I went through some of my old notes.... can't seem to find if/when I fixed the problem. I know that the screen repaints correctly with the MDI Notepad example that ships with FireFly (at least it does on my computer).

Try these couple of things:

(1) Ensure that you have the very latest FFengine.exe installed. You can download it from: http://www.planetsquires.com/files/FFengine.zip

(2) Ensure that you do a Full Compile (F5) instead of just an Incremental Compile (Shift+F5). This will ensure that all the source files will get rebuilt correctly.

(3) Check the generated code of your main Form. Look at the %WM_CREATE message in the "FORMNAME_FORMPROCEDURE" function where the MDIClient window is created. Check to see if the window styles match the ones in the following code snippet:

        hWndClient = CreateWindowEx(%WS_EX_CLIENTEDGE, "MDICLIENT", ByVal %Null, _
                       %WS_CHILD Or %WS_CLIPCHILDREN Or _
                       %WS_VISIBLE Or %WS_VSCROLL Or %WS_HSCROLL, _
                       0, 0, 0, 0, hWndForm, IDC_MDIFORM_MDICLIENT, GetModuleHandle(ByVal %Null), cc)

                       'Set the background color for the MDIClient
                       SetClassLong hWndClient, %GCL_HBRBACKGROUND, %COLOR_APPWORKSPACE + 1


If that doesn't work then maybe you can whip together a quick project that demonstrates the problem and email it to me? Taht way, I can test it on my computer and examine the generate code for the problem.

David Martin

Paul,

(1) Already had that one.

(2) Already was doing that.

(3) Checked and it was the same code.

Have sent you the PRJ and form files in a zip via email attachment.

Thanks,

TechSupport

Hi David,

I found the source of the problem. It appears that if a background
bitmap had once been specified then subsequent code generations would
output a %Null brush for the MDIClient background. This is now fixed.

You can get the fix in the latest FFengine.exe

http://www.planetsquires.com/files/FFengine.zip

Any other problems, just let me know.

David Martin

That did it Paul

Thanks for the quick fix.