Меню окна из .Net - PullRequest
4 голосов
/ 14 мая 2010

Как отобразить меню общего окна из кода .Net, которое появляется при нажатии Alt + Пробел?

Ответы [ 2 ]

1 голос
/ 03 июня 2010

Как отключить кнопку «Закрыть» в строке заголовка консольного приложения с помощью Visual Basic 2005 или Visual Basic .NET

Вставлено с http://support.microsoft.com/kb/818361

Если wParam - SC_KEYMENU, lParam содержит код символа клавиши, который используется с клавишей ALT для отображения всплывающего меню. Например, нажатие ALT + F для отображения всплывающего окна «Файл» вызовет WM_SYSCOMMAND с wParam, равным SC_KEYMENU, и lParam, равным «f».

Вставлено с http://msdn.microsoft.com/en-us/library/ms646360.aspx

Пункты меню в меню окна можно изменить с помощью функций GetSystemMenu, AppendMenu, InsertMenu, ModifyMenu, InsertMenuItem и SetMenuItemInfo. Приложения, которые изменяют меню окна, должны обрабатывать сообщения WM_SYSCOMMAND.

Вставлено с http://msdn.microsoft.com/en-us/library/ms646360.aspx

0 голосов
/ 19 мая 2010

Вы можете использовать SendKeys в c # для отправки ключей в ваше приложение. Как и в вашем случае, вы хотите отправить клавиши ALT + пробел в ваше приложение, чтобы отобразить системное меню, для этого первое, что вам нужно сделать, - это перенести фокус на форму, где вы хотите отобразить системное меню и использовать SendKeys .SendWait () метод.

Примечание. Без переноса фокуса на форму, в которой вы хотите отобразить системное меню, команда не будет работать должным образом.

Попробуйте следующий код для отправки ALT + Пробел для отображения системного меню

        this.Focus();             // Transfering focus to form
        SendKeys.SendWait("% ");  // Sending Keys

Здесь% представляет ALT и клавиши пробела соответственно представляют пробел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...