seeking a better splitter without flicker..

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.

https://forum.xojo.com/2074-split-screen/p1#p32205

I use Oliver Osswald 's splitter and is his solution suit for my case?

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.

I simply find your code is more easy to understand… is your solution fit for me? thanks

I don’t use dotnet and wont use it as i like xojo a little…

Think it’s already on some road map to move towards using dot net controls. This is what modern Windows is.

when will it release?
before that I want to handle it if there is a solution

[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 is the way Windows itself reduces flicker. Don’t show live resize, just at the end of the user action. Should be much better.

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).

Ah ok, you already found it on this other thread:
https://forum.xojo.com/2074-split-screen/p1#p32205

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.

example works for me.but I use it to replace my “containercontroller”, its not works…

The declare is posted here https://forum.xojo.com/6484-tip-removing-flicker-on-windows/20

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…