Focus setzen



  • MOrgen zusammen!
    Ich hab ein kleines Problem...ich habe ein programm, das keinen Taskbar eintrag hat, und auch nicht im ALT-TAB switcher drin ist (wie immer das ding auch richtig heißen mag _). Jetzt mein Problem: ich will, das dieses Fenster in den Fordergrund kommt, wenn ein anderes programm den Focus bekommt (winamp genaugesagt). Jetzt hab ich probiert mit GetForegroundWindow das window zu bekommen, was im vordergrund ist, und wenn dies Winamp ist, dann mit BringWindowToTop oder SetWindowsPos() etc das fenster nach vornezubringen(es soll nicht den Focus bekommen/behalten)...allerdings schmiert mir dann immer das Programm und/oder Winamp ab. Das ganze rufe ich in OnTimer auf (intervall: 900).Wie stelle ich das ganze jetzt geschickt an?
    Danke für die hilfe



  • Oha, guck Dir mal SetWindowPos(..) genauer an und versuche es mal mit TOPMOST (oder so ähnlich).



  • ok, das mit SetWindowsPos funzt jetzt (Thx@Shaggy)
    [this->SetWindowPos(&pWinamp, 0, 0,0,0, SWP_NOSIZE | SWP_NOMOVE )]

    aber wie kann ich feststellen, ob winamp im vordergrund ist? Wäre ja sinnlos das immer zu machen, geht nur aufs system, denke ich. Habs mit
    GetTopWindow() oder GetForegroundWindow() probiert und das mit nem CWnd* objekt vergliechen das auf winamp zeigt...was mach ich noch falsch?



  • Probiers mal mit pWinampWindow->IsWindowVisible();



  • dankeschön an dEUs _ so es funzt jetzt ganz, ohne probs, aufhänger etc _


Anmelden zum Antworten