Переключение на Главную Страницу Страницы: 1 2 3 [4] 5  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как определить, что кликнули на пустом месте? (число прочтений - 17526 )
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #45 - 02. Октября 2013 :: 12:06
Печать  
alyuev писал(а) 02. Октября 2013 :: 11:11:
Посмотрел в Spy - дескриптор для MDIClient, как раз тот, что выдает мой вариант.


Ты в терминалке тестируешь?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #46 - 02. Октября 2013 :: 12:08
Печать  
Да. 1С как удаленное приложение. Но SPY я запускаю на том же сервере, где крутится 1С, под моей же сессией.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #47 - 02. Октября 2013 :: 12:19
Печать  
alyuev писал(а) 02. Октября 2013 :: 12:08:
Да. 1С как удаленное приложение. Но SPY я запускаю на том же сервере, где крутится 1С, под моей же сессией.


что же там MDI не первое доченее окно у Приложения?
хендл 1С-ки то правильный?

а поищи по хэндлу, из моего варианта, что это за окно?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #48 - 02. Октября 2013 :: 12:20
Печать  
Да, хендл 1С правильный.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #49 - 02. Октября 2013 :: 12:21
Печать  
alyuev писал(а) 02. Октября 2013 :: 12:20:
Да, хендл 1С правильный.


а поищи по хэндлу в SPY++, из моего варианта MDI, что это за окно?
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #50 - 02. Октября 2013 :: 12:34
Печать  
Хм.... ничего не понимаю.... Сейчас выдает нормально.... Чувствуешь себя, мягко говоря, неловко... Вроде не пил... Улыбка Сам хотел проверить по хендлу, что это за окно. Но не догадался, что можно ввести хендл в поиске, а начал водить прицелом. При наведении на MDIClient выдал мне нужный хендл (мой). А твой найти не успел. Я перезапускал приложение. И после этого, как запустил все скрипты, - всё ок.... ??? Странно.....

В общем - буду держать под контролем хендлы Улыбка

« Последняя редакция: 03. Октября 2013 :: 08:54 - alyuev »  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #51 - 02. Октября 2013 :: 13:07
Печать  
Да, держи в курсе...просто это очень странно.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #52 - 02. Октября 2013 :: 14:51
Печать  
Поймал кота за хвост: msctls_statusbar32
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #53 - 02. Октября 2013 :: 14:59
Печать  
alyuev писал(а) 02. Октября 2013 :: 14:51:
Поймал кота за хвост: msctls_statusbar32


А картинку из SPY++ выложи.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #54 - 02. Октября 2013 :: 15:05
Печать  
смотри
  

Spy.jpg ( 102 KB | Загрузки )
Spy.jpg

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #55 - 03. Октября 2013 :: 05:19
Печать  
Можно попробовать действовать не через WinAPI ::GetWindow(..., GW_CHILD),
а через MFC класс CMDIFrameWnd коим является фрейм главного окна
У него есть такой член:
public:
     HWND m_hWndMDIClient;       // MDI Client window handle
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #56 - 03. Октября 2013 :: 05:24
Печать  
надо только в выражении
Wrap.NumGet(Wrap.GetMainFrame(), 32)
заменить смещение и получим непосредственно хендл МДИ клиента
  

1&&2&&3
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как определить, что кликнули на пустом месте?
Ответ #57 - 03. Октября 2013 :: 06:53
Печать  
trad писал(а) 03. Октября 2013 :: 05:24:
надо только в выражении
Wrap.NumGet(Wrap.GetMainFrame(), 32)
заменить смещение и получим непосредственно хендл МДИ клиента


&hC0
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #58 - 03. Октября 2013 :: 14:58
Печать  
Спасибо. Получилось.
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 854
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как определить, что кликнули на пустом месте?
Ответ #59 - 21. Ноября 2013 :: 12:46
Печать  
Еще в продолжение этой темы.

Задача похожая. Как определить, что кликнули на пункте меню?

Возникла ситуация, когда перехватываю клик мыши на шапке табличной части, и поверх шапки как раз выведено меню. Так вот, когда кликаешь на пункт меню, который над шапкой - срабатывал не выбор, а обработка шапки. Т.е. меню становилось прозрачным для клика.

Пока выкрутился так. У нас есть глобальная функция по выводу меню. Так вот в ней поднимаю глПеременную, что мол сейчас обрабатываем меню.

  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 2 3 [4] 5 
ОтправитьПечать