Сохранять фокус моего окна

Тема в разделе "WASM.WIN32", создана пользователем clubnr, 6 дек 2006.

  1. clubnr

    clubnr New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2006
    Сообщения:
    11
    Адрес:
    Russia
    Можно ли сохранять фокус моему окну, когда пользователь щелкает по другим окнам? setfocus, setforegroundwindow, setactivewindow не помогают. При этом подсвечивается синим то, что свернуто на панели задач, а фокус окну не возвращается. С пом. AttachThreadInput setforegroundwindow помогает вернуть фокус, но если щелкнуть по окну консольной программы (Фара), то и это не работает.
    Я заметил, что если программа делает SetWindowsHookEx с WH_JOURNALRECORD, то достаточно в обработчике сообщения wm_killfocus вставить setfocus для моего окна, и фокус не теряется. Неужели нет другого пути сохранять фокус, кроме как устанавливать этот хук?
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Нужно ли причинять пользователю такие неудобства?
     
  3. Guest

    Guest Guest

    Публикаций:
    0
    Через SetWindowsHookEx будет надежнее. Многие проги используют простые и надежные методы вроде этого и проблем не было.
     
  4. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    кажись речь идёт об обыкновенном "always on top" если так то ртфм WS_EX_TOPMOST
     
  5. Guest

    Guest Guest

    Публикаций:
    0
    + таймер на установку фокуса.