На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Смена фокуса , на чужом окне
    Всем привет!
    Необходимо сменить фокус чужого окна (который находим через FindChildWindow).
    Проблема в том, что SetFocus не работает, ибо:
    Цитата
    The window must be attached to the calling thread's message queue.

    PostMessage(WM_SETFOCUS) работает тоже через раз (в лучшем случае), да к тому же, по-хорошему, там нужно указывать в wParam окно, которое теряет фокус (потому как даже при удачном перемещении фокуса пунктирная рамочка с кнопочки, имевшей фокус ранее, не удаляется).

    Подскажите, плиз, как правильно установить фокус?
    Предварительно я активирую окно через SetForegroundWindow.
      Цитата Jin X @
      Необходимо сменить фокус чужого окна

      Foreground activation permission is like love: You can’t steal it, it has to be given to you
        B.V., тут проблема в другом. Я не пытаюсь вывести на передний план своё окно, я вывожу чужое, и оно прекрасно выводится.
        Вопрос в том, как передать фокус на нужный мне контрол в чужом окне.

        Добавлено
        Решение найдено (подсказали в другом месте):
        ExpandedWrap disabled
          DWORD dwThreadID = GetWindowThreadProcessId(hWindow, NULL); // Получаем идентификатор потока окна
          DWORD dwThisThreadID = GetCurrentThreadId;
          AttachThreadInput(dwThisThreadID, dwThreadID, TRUE); // Присоединяемся к потоку обработки ввода
          SetFocus(hWindow); // Посылаем сообщение для установки фокуса
          AttachThreadInput(dwThisThreadID, dwThreadID, FALSE);
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0251 ]   [ 16 queries used ]   [ Generated: 28.03.24, 18:17 GMT ]