Dialog immer Topmost
-
Habe einen Dialog in den Eigenschaften auf Topmost = true gesetzt. Hat dann auch soweit funktioniert. Nun habe ich die Eigenschaft wieder auf false gesetzt. Der Dialog wird nun aber immer noch als Topmost angezeigt. Habe schon einen Rebuild All gemacht. Hat aber nichts gebracht. Woran kanns noch liegen?
-
1. Schau mal in Deine Ressource rein ob Der Stil wirklich draussen ist.
2. Hast Du evtl. auch noch in Deiner Software SetWindowPos benutzt?
-
1. In der Ressource habe ich geschaut dort steht nichts mehr drin von Topmost
Mit dem Spy++ habe ich auch geschaut dort ist es noch drin beim Still des Dialogs2. Hab SetWindowPos verwendet. Aber nur für die Scrollbar:
m_scrollbar.SetWindowPos(&CWnd::wndBottom,crect.left, crect.top, 0, 0, SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOREPOSITION);
Sollte ja mit dem auch nichts zu tun haben, oder?
-
Hat sich erledigt. Ist plötzlich weg. Kann aber nicht erklären wieso.
-
Hallo nun habe ich herausgefunden. Und dazu noch gleich ein paar Erkenntnise. Die man vieleicht auch in die FAQs stellen kann wenn mir keiner widerspricht
1. Der Dialog der als erstes in einer DLL erzeugt wird, bestimmt die topmost eigenschaft der Anderen. Mein erster Dialog war mit SetWindowPos auf Topmost gesetzt. Somit waren alle anderen auch Topmost obwohl gar nicht gesetzt
2. Der Dialog der als erstes erzeugt wird bestimmt das Symbol im Taskviewer aller anderen Dialoge.
3. Der Dialog der als letztes erzeugt wird ist in der z-order immer ganz vorne. Egal ob Fokus oder nicht.