Hello!
I want to implement some basic function in my vis: to not let it show, when the main window is minimized at startup. All visualization plugins I saw till now show up at every song change (SW_SHOWNOACTIVATE is called at the end of window creation)
I inserted an if-then clause which checks if main window IsWindowVisible or IsIconic, but I have to do this each time there is data, because user can minimize-maximize the foobar window, and thus the vis window even during a song.
if ( cfg_stay_on_top==0 && (!IsWindowVisible(parentWindowForNow) || IsIconic(parentWindowForNow)))
{
if (IsWindowVisible(g_wnd))
{
ShowWindow(g_wnd,SW_HIDE);
}
}
else
{
if (!IsWindowVisible(g_wnd))
{
ShowWindow(g_wnd,SW_SHOWNOACTIVATE);
}
}
Can the same be achieved with event handling? I tried a switch for WM_SHOWWINDOW, and then switch for SW_PARENTCLOSING/OPENING inside g_windowproc, but to no avail, I've no idea how to use this right.
case WM_SHOWWINDOW:
switch (lp)
{
case SW_PARENTCLOSING:
//if (cfg_stay_on_top == 0)
ShowWindow(wnd,SW_HIDE);
break;
case SW_PARENTOPENING:
//if (cfg_stay_on_top == 0)
ShowWindow(wnd,SW_SHOWNOACTIVATE);
break;
}
break;
Maybe I could ShowWindow(g_wnd, SW_HIDE) at first, and then only activate the vis window when the main window is visible?
Anyone understand what I mean? I would be happy if someone could help me, even though the first part of code I posted does just what I want, but I don't think thats neat and clean.
Thanks & sorry for the long post