There are a number of things that have changed with the new windows updates as things have now moved back to the "correct" way of doing things in Windows. This means that some things that people have "gotten away with" now have to be corrected going forward.
Does it help you if you can move the control to the back of the stack at runtime?
If so you can place this at the end of your window.open (or even in the canvas.open) to put the canvas to the back of the "stack".
Declare Function SetWindowPos Lib "User32.dll" (hWnd As Integer, hWndInsertAfter As Integer, X as Int32, Y as Int32, cx As Int32, cy As Int32, uFlags As UInt32) As Integer
Call SetWindowPos(myCanvas.Handle, 1, 0, 0, 0, 0, 3)