I am using imSplitter.and it flicker so much.
when the layout simply is
Left : containcontroll holds a tabpanel,and tabpanel holds a listbox
Right: containcontroll only
when drag the splitter,Left is flick so much in windows and I have set each of them “erasebackground” to false.
Did you try with Einhugur splitter? In general, windows and resizing of containers means flicker. If you need somewhat more complex and flicker-free user interfaces on Windows, I’d use Microsoft Visual Studio with the dot.net framework. Xojo simply can’t do the job, on Windows.
[quote=297849:@Chai Ren]I am using imSplitter.and it flicker so much.
when the layout simply is
Left : containcontroll holds a tabpanel,and tabpanel holds a listbox
Right: containcontroll only
when drag the splitter,Left is flick so much in windows and I have set each of them “erasebackground” to false.[/quote]
Instead of splitters, a couple of windows and some code for them to move side by side is probably preferable to avoid flicker.
any difference?
I am thinking to disable splitter’s mouse event,and when I drag,I do nothing just show the splittler? and when mouse release, the windows change the size smoothly
that’s ok…infact I don’t need a live resize… but I try @Oliver Osswald 's way:
to use windows,
Dim i As Integer = 0 #If TargetWin32
Declare Function SystemParametersInfo Lib “user32” _
Alias “SystemParametersInfoA” (uAction As Integer, _
uParam As Integer, lpvParam As Integer, _
fuWinIni As Integer) As Integer
If IsOff <> 0 Then IsOff = 1
i = SystemParametersInfo(SPI_SETDRAGFULLWINDOWS,IsOff,0,0)
#endif
Return i
say I just use oliver’s code and create a sub class from “ContainerControll” ,
but no luck to work.
Yes, switch off life resize for your windows xojo app only. This is a hackish workaround using declares, which works.
Somewhere I posted a link to a sample app, but I’m not finding it right now. Later today I’ll be back at my Mac and probably I’ll be able to find it again.
I’m using this ugly workaround in all my xojo-windows apps, and it works.
Otherwise there are blog-posts on the subject, many discussions on the old and current forum, all of them help a little but none really solve the issue. Xojo can’t do flicker free windows apps (unless you skip canvas and containers and resize).
So, the sample project posted there does not work for you? It is 3 years old and I have not checked it with current versions of Windows and Xojo, so it may have broken in the meantime (?).
I am not sure that it applies in this context, but I once had a severe flicker issue with a program, that I fixed by stopping any redraw of the window while the operation causing the flicker was going on. What needs to be done is:
get the window handle (you can get the window handle in many different ways. Since you are already working in the window that you want to manage, getactivewindow is probably the easiest call)
send a WM_REDRAW false message to the window identified with the handle, in order to stop redraw on that window
perform the flickery operation
send a WM_REDRAW true message to the window in order to resume redraw on the window.
It is fast and relatively easy to do. It used to work on older C, VB6 applications and it can also work on Xojo applications.
Hope this can help.
sorry,not very understand…I decide to drop away the containercontroll… as it’s not good for resize. and
I decide to not use live size …
this will make the app better…