I ported a win32 control using QWinHost, and put it on a layered (semi-transparent) widget. When I set WS_EX_LAYERED flag, then paint not occurred for win32 ported control.
SetWindowLong(winId(),
GWL_EXSTYLE,
GetWindowLong(winId(), GWL_EXSTYLE) | *WS_EX_LAYERED*);
You need to tell Windows how to paint the layered window. MSDN says that there are two ways; you almost certainly want SetLayeredWindowAttributes since you don't want to alter the control's painting code.
So after
add
(Adjusted, of course, for your needs).
Note that the layered window must be a top-level window on Windows 7 below; only Windows 8 and above support layered child windows.