MFC Fenster verschwindet beim wechsel zwischen virtuellen Desktops nicht
-
Hallo,
ich habe das Problem, dass bestimmte Fenster beim wechsel zwischen virtuellen Desktops nicht verschwinden. Das Anwendungsfenster und Panes, verschinden aber die Frames mit folgender erstellung nicht.DWORD dwStyle = WS_OVERLAPPED | WS_THICKFRAME | WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; DWORD dwStyleEx = WS_EX_TOOLWINDOW | WS_EX_RIGHTSCROLLBAR;
Kennt jemand das Problem und die Lösung dazu?
Thx
Christian
-
Hab es selbst doch noch gefunden. Hier für alle die das vielleicht auch mal haben:
Das erzeugte Fenster sollte nicht in der Taskbar auftauchen. Das kann man mit WS_EX_TOOLWINDOW auch erreichen, hat aber eben den Hasenfuß, dass es in allen virtuellen Desktops sichtbar bleibt. Daher darf WS_EX_TOOLWINDOW nicht verwendet werden.
Damit das Fenster trotzdem nicht in der Taskbar auftaucht, muss ein owner gesetzt werden.Also:
DWORD dwStyle = WS_OVERLAPPED | WS_THICKFRAME | WS_CAPTION | WS_SYSMENU | WS_MAXIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN; DWORD dwStyleEx = /*WS_EX_TOOLWINDOW |*/ WS_EX_RIGHTSCROLLBAR; UINT nId = 0; if (pFrame->CreateEx(dwStyleEx, NULL, pszFrameTitle, dwStyle, rect, pParent, nId, NULL) == FALSE) { return NULL; } pFrame->SetOwner(AfxGetApp()->GetMainWnd());