Конференция "Начинающим" » Послать сообщение окну не активируя его
 
  • Pads1161 (14.02.17 11:20) [0]
    Как можно послать сообщение окну, например такое:
    PostMessage(Wnd, WM_LBUTTONDOWN, 0, MAKELPARAM(5, 5));
     PostMessage(Wnd, WM_LBUTTONUP, 0, MAKELPARAM(5, 5));


    не активируя его?
    На ум пришёл такой способ, но это не совсем то:
    ActiveWindow := GetForegroundWindow;
    //SendMessage
    SetForegroundWindow(ActiveWindow);

  • Игорь Шевченко © (14.02.17 11:29) [1]
    Так и посылай, не активируя
  • Pads1161 (14.02.17 12:18) [2]

    > Так и посылай, не активируя

    а как? весь инет обрыл - ничего не нашёл.
  • rrrrr © (14.02.17 12:39) [3]
    посылка сообщения окну не активирует окно.
  • Pads1161 (14.02.17 20:04) [4]
    rrrrr, да Вы правы, wnd активного окна не меняется. Значит оно как то фокус получает. Есть два окна, основное и дочернее, и когда отсылаешь сообщение одному из них, то оно "всплывает" над другим.
  • Pads1161 (14.02.17 20:09) [5]
    Хотя, если сделать активным дочернее окно, а затем послать сообщение основному, то wnd активного окна измениться с дочернего на основное.
  • rrrrr © (14.02.17 20:42) [6]
    посылка сообщения окну не активирует окно, не меняет фокус, не вызывает рак легких.
  • Pads1161 (14.02.17 21:05) [7]
    Если есть время - напиши мне, я через тимвивер покажу, если что заплачу.
    vk.com/id374007381
  • Pads1161 (14.02.17 21:14) [8]
    вот гифка
    https://yadi.sk/d/hz4MMOrX3E5p7Z
    во второй проге посылаю сообщение лист боксу первой проги
  • Dimka Maslov © (14.02.17 22:39) [9]
    Если в оконной функции прописан захват фокуса в ответ на нажатие мыши (а он обычно таки прописан), то получение эмулированного сообщение от мыши будет приводить к захвату фокуса. Чтобы этого не происходило, потребно окно-получатель любым доступным способом отучить захватывать фокус.
 
Конференция "Начинающим" » Послать сообщение окну не активируя его
Есть новые Нет новых   [118230   +21][b:0][p:0.001]