purebasic.info

PureBasic forum
Текущее время: Вт апр 24, 2018 11:57 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: простой вопрос по меню
СообщениеДобавлено: Пт дек 08, 2017 8:39 pm 
Не в сети
профессор

Зарегистрирован: Вс авг 31, 2014 12:11 am
Сообщений: 397
Благодарил (а): 49 раз.
Поблагодарили: 19 раз.
Пункты репутации: 10
Здравствуйте.
Не получается вызвать пункт системного меню окна. Подскажите, что не так?
Код:
1
2
3
4
5
6
7
8
9
10
hWnd = FindWindow_("TTOTAL_CMD", 0)
hMnu = GetSystemMenu_(hWnd, #False)
idMnuMove = GetMenuItemID_(hMnu, 1)
 
;для проверки, что выбран нужный пункт меню
Text$ = Space(#MAX_PATH)
GetMenuString_(hMnu,1,@Text$,#MAX_PATH,#MF_BYPOSITION)
Debug Text$
 
PostMessage_(hWnd, #WM_COMMAND, idMnuMove, 0)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: простой вопрос по меню
СообщениеДобавлено: Сб дек 09, 2017 4:54 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 258
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
Оно? :)
Код:
1
2
3
;Инструменты-> список команд ТС...
hWnd.l = FindWindow_("TTOTAL_CMD", 0)
PostMessage_(hWnd, #WM_USER+51, 1005, 0)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: простой вопрос по меню
СообщениеДобавлено: Сб дек 09, 2017 8:00 am 
Не в сети
профессор

Зарегистрирован: Вс авг 31, 2014 12:11 am
Сообщений: 397
Благодарил (а): 49 раз.
Поблагодарили: 19 раз.
Пункты репутации: 10
repeat, спасибо большое, пригодится. Полезная информация. Но это немного не то, о чём спрашивал. Total Commander это всего лишь окно для примера. С таким же успехом могло выступать, например окно проводника или любое другое, у которого это меню не выключено. Мне нужно программно вызвать пункт системного меню "переместить". При этом не показывая сам процесс (появление меню). Это как если бы последовательно слать в окно сочетание "Alt + пробел" -> курсор "down" -> "Enter". Вот этого хотелось избежать.

Так понял 1005 здесь подсмотрели. А 51 откуда?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: простой вопрос по меню
СообщениеДобавлено: Сб дек 09, 2017 9:23 am 
Не в сети
профессор

Зарегистрирован: Сб фев 06, 2016 6:18 pm
Сообщений: 258
Благодарил (а): 14 раз.
Поблагодарили: 29 раз.
Пункты репутации: 0
knower писал(а):
А 51 откуда?
вот
И, где-то на забугорных форумах было. Теперь ясно что требуется. Попробуйте еще так:
Код:
1
PostMessage_(hWnd, #WM_SYSCOMMAND, idMnuMove, 0)



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: простой вопрос по меню
СообщениеДобавлено: Сб дек 09, 2017 9:40 am 
Не в сети
профессор

Зарегистрирован: Вс авг 31, 2014 12:11 am
Сообщений: 397
Благодарил (а): 49 раз.
Поблагодарили: 19 раз.
Пункты репутации: 10
repeat, спасибо большое. Теперь то, что надо. Работает!
Именно так, как хотел. Прицельно бьём по меню.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB