Хочу кликать сквозь форму!
От: Аноним  
Дата: 14.12.10 18:00
Оценка:
Собственно, есть начальное, генерируемое студией WPF приложение. При его запуске, появляется форма.
В будущем, это формочка будет очень красивой и прозрачной, но с этим проблем нету.

Нужно вот что, я хочу при кликой левой мышки на этой форме, пропустить этот клик на то приложение, которое находиться под ним (допустим, браузер). Но, при клике правой кнопкой, приложение должно само обрабатывать это событие.
Это, вообще, реально сделать? в какую сторону копать?
Re: Хочу кликать сквозь форму!
От: Visor2004  
Дата: 14.12.10 21:30
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Собственно, есть начальное, генерируемое студией WPF приложение. При его запуске, появляется форма.

А>В будущем, это формочка будет очень красивой и прозрачной, но с этим проблем нету.

А>Нужно вот что, я хочу при кликой левой мышки на этой форме, пропустить этот клик на то приложение, которое находиться под ним (допустим, браузер). Но, при клике правой кнопкой, приложение должно само обрабатывать это событие.

А>Это, вообще, реально сделать? в какую сторону копать?

Обработать в оконной процедуре вот это сообщение.
Помните!!! ваш говнокод кому-то предстоит разгребать.
Re[2]: Хочу кликать сквозь форму!
От: Аноним  
Дата: 16.12.10 11:34
Оценка:
Здравствуйте, Visor2004, Вы писали:

V>Здравствуйте, Аноним, Вы писали:


А>>Собственно, есть начальное, генерируемое студией WPF приложение. При его запуске, появляется форма.

А>>В будущем, это формочка будет очень красивой и прозрачной, но с этим проблем нету.

А>>Нужно вот что, я хочу при кликой левой мышки на этой форме, пропустить этот клик на то приложение, которое находиться под ним (допустим, браузер). Но, при клике правой кнопкой, приложение должно само обрабатывать это событие.

А>>Это, вообще, реально сделать? в какую сторону копать?

V>Обработать в оконной процедуре вот это сообщение.


Попробовал, не похоже на то, что это можно сделать, через обработку этого сообщения, чего-то нахватает.
Собственно, удалось добиться эфекта, когда кликать можно сквозь моё окно, установкой флага WS_EX_TRANSPARENT, теперь мне нужно, как-то ловить клики правок кнопкой, а всё остальное пропускать окну ниже... моё окно, всегда, висит поверх.
Может нужно выйти за пределы моего окна, и повесить какой-то 'хук' на клик мышкой? и как-то пределять, что именно моё приложение в этой области?
Есть идеи?
Re[3]: Хочу кликать сквозь форму!
От: Visor2004  
Дата: 16.12.10 13:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Visor2004, Вы писали:


V>>Здравствуйте, Аноним, Вы писали:


А>>>Собственно, есть начальное, генерируемое студией WPF приложение. При его запуске, появляется форма.

А>>>В будущем, это формочка будет очень красивой и прозрачной, но с этим проблем нету.

А>>>Нужно вот что, я хочу при кликой левой мышки на этой форме, пропустить этот клик на то приложение, которое находиться под ним (допустим, браузер). Но, при клике правой кнопкой, приложение должно само обрабатывать это событие.

А>>>Это, вообще, реально сделать? в какую сторону копать?

V>>Обработать в оконной процедуре вот это сообщение.


А>Попробовал, не похоже на то, что это можно сделать, через обработку этого сообщения, чего-то нахватает.

надо написать:

switch ( Msg->Message )
{
   case WM_NCHITTEST:
      /* обработка координат нажатия */
      if (transparent)
         return HTTRANSPARENT;
      break;
}


И все будет работать. Этот механизм существует уже не первый десяток лет...
Помните!!! ваш говнокод кому-то предстоит разгребать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.