Элементы панели задач без полей: Использование меню правой кнопки мыши (VB6) - PullRequest
2 голосов
/ 01 октября 2008

Даже если для BorderStyle установлено значение 0, можно заставить окно отображаться на панели задач, либо включив свойство ShowInTaskbar, либо непосредственно используя windows api: SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, Win.GWL_EXSTYLE) Or Win.WS_EX_APPWINDOW. Однако такие записи панели задач не имеют контекстного меню в своей записи панели задач. Щелчок правой кнопкой мыши по ним ничего не делает вместо вызова контекстного меню. Есть ли способ прикрепить к нему стандартный или нестандартный обработчик?

1 Ответ

1 голос
/ 01 октября 2008

Без взлома, я думаю, вы застрянете здесь, извините. Когда вы устанавливаете свойства VB6 без полей, вы по сути отключаете меню управления. Меню управления (обычно активируемое щелчком правой кнопкой мыши на строке заголовка окна или щелчком левой кнопкой мыши на значке в верхнем левом углу) отображается при щелчке правой кнопкой мыши окна на панели задач.

Теперь, если у вас есть желание взломать, вы можете «смоделировать» поведение таким образом, чтобы пользователь не знал разницу. Я получил идею от этой ветки сообщений по usenet .

По сути, звучит так, как будто вы можете взломать его, используя две формы. Одна форма сразу сворачивается и становится вашей «заглушкой» на панели задач. Другая форма - та, которую вы сейчас разрабатываете (которую мы назовем «основной» формой). Форма-заглушка - это то, что фактически загружает и отображает вашу основную форму.

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

Это общий смысл хака. Если бы меня сейчас не было на работе, я бы взялся за простой проект VB6 и посмотрел, смогу ли я заставить его работать на вас.

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