Как запретить сворачивать форму?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Как запретить сворачивать форму?

Сообщение Mikle » 25.06.2003 (Ср) 17:21

Имеется некоторая полноэкранная D3D программа. После случайного нажатия Ctrl+Esc, WinKey и т. п. Windows переключает задачу, что приводит к глюкам. При этом я не обнаружил никаких событий, сопровождающий сворачивание формы. LostFocus, Deactivate, Resize не помогают.
Подскажите как отследить момент сворачивания, либо (даже лучше), просто запретить сворачивать форму.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.06.2003 (Ср) 17:24

А что если просто убрать кнопки min&max? :?

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 25.06.2003 (Ср) 18:31

Вообщето Resize
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 25.06.2003 (Ср) 20:34

Наложи заклятие AlwaysOnTop
Не так страшен русский танк, как его пьяный экипаж

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 26.06.2003 (Чт) 8:51

Sebas
Resize не происходит.
RayShade
Этих кнопок нет изначально, кроме того форма полноэкранная. Режим экрана может не соответствовать режиму рабочего стола, видимо поэтому нет Resize - окно не сворачивается, а остается на каком-то "другом" экране.
Urvin
Вот AlwaysOnTop еще не пробовал. Прокатит ли? Попробую - скажу.

basicom
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 20.05.2003 (Вт) 10:10
Откуда: Екатеринбург

Сообщение basicom » 26.06.2003 (Чт) 11:23

Выполни три действия и да будет тебе счастье :lol: :

1.в system.ini пропиши :
Shell=путь программы(вместо Eхplorer.exe) дабы не загружать ничего лишнего.
2.При загрузке формы: MyForm.WindowState = 2
3.В события формы Paint и Resize то же пиши:
MyForm.WindowState = 2

Urvin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 518
Зарегистрирован: 04.06.2003 (Ср) 10:47
Откуда: с Марса

Сообщение Urvin » 26.06.2003 (Чт) 14:41

Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40

'Always On Top
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
' Not Always On Top
SetWindowPos Me.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
Не так страшен русский танк, как его пьяный экипаж

zzoom
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 13.06.2003 (Пт) 10:29
Откуда: Рига

Сообщение zzoom » 26.06.2003 (Чт) 22:48

Код: Выделить всё
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long


Отрубает CTRL+ALT+DEL, ALT+ESC etc. :
Код: Выделить всё
SystemParametersInfo 97&, True, CStr(1), 0


И врубает обратно:
Код: Выделить всё
SystemParametersInfo 97&, False, CStr(1), 0


Вот по поводу параметров извини - не помню, применял давно в похожей ситуации. Под Win95/98 работает строго, под NT - не в курсе.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 27.06.2003 (Пт) 8:43

zzoom

Вот это уже то, что нужно. CTRL+ALT+DEL я отрубать не буду - вещь нужная, да и случайно не нажмешь.
А параметры я найду - есть у знакомого толстая книжка по API. Только справлюсь ли я таким способом с WinKey?

zzoom
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 13.06.2003 (Пт) 10:29
Откуда: Рига

Сообщение zzoom » 27.06.2003 (Пт) 11:01

А параметры я найду - есть у знакомого толстая книжка по API. Только справлюсь ли я таким способом с WinKey?

ага, и со всем тем что к нему прилагается (WinKey+R, WinKey+F...)
:D

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 09.07.2003 (Ср) 14:48

Как выяснилось, это тоже не совсем то. То есть оно, конечно, работает, но я не могу заранее угадать, какие горячие клавиши могут быть определены у конечного пользователя. А запрещать все подряд - не годится, самой программе для работы нужны многие клавиши.
Но я решил по-другому - выбросил из программы все DoEvents. После этого, естественно, перестали работать таймеры и события нажатия клавиш. Но вместо таймеров работает QueryPerformanceCounter, а клавиатуру я опрашиваю асинхронно - это даже удобнее.
Так что проблемма, вроде, решена.

Алекс
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 30.04.2003 (Ср) 15:59
Откуда: Краснодар

Сообщение Алекс » 28.07.2003 (Пн) 18:23

А поподробней как отрубить ctrl+alt+del А гораздо лучше отловить это событие???
Алекс.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 03.12.2016 (Сб) 0:50

Ребят, не хотел создавать новую тему, мне необходимо запретить сворачивать форму. Только мне ненужна форма по верх всех окон, как описывается решение тут. Потому TopMost мне не подходит.

Вроде как нашёл в инете решение

вот тут:
http://ru.stackoverflow.com/questions/453114/%D0%A1%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%BD%D0%B5%D1%81%D0%B2%D0%BE%D1%80%D0%B0%D1%87%D0%B8%D0%B2%D0%B0%D1%8E%D1%89%D0%B5%D0%B5%D1%81%D1%8F-%D0%BE%D0%BA%D0%BD%D0%BE-%D0%BF%D0%BE-wind-not-topmost

попробовал прописать вот так у себя:
Код: Выделить всё
Declare Function GetShellWindow Lib "user32.dll" () As Long
Declare Function SetWindowLongPtr Lib "user32.dll" Alias "SetWindowLongPtrW" (ByVal handle As Long, ByVal i As Integer, ByVal style As Long) As Long

Const GWLP_HWNDPARENT = -8   ' значение этой константы нашёл в Инете, может неверное...

    Dim X As Long
    X = GetShellWindow()

    'X перевожу в 16-ричное своей функцией и получается такое значение: &H1010A

SetWindowLongPtr form1.hWnd, GWLP_HWNDPARENT, &H1010A


короче, при старте, сообщение типа VB6 не может найти точку входа в Библиотеку "user32.dll"

Ребята, подскажите кто разбирается, если тут ошибка. Или это решение тупиковое?

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как запретить сворачивать форму?

Сообщение Teranas » 03.12.2016 (Сб) 2:25

запрещать сворачивать форму не хорошо, 1) это не уважение к пользователю, хотя этот пункт можно игнорировать 2) это вмешательство в работу системы, что пользователю может, не понравится, да и антивирусам, по-секрету
С уважением, Андрей.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как запретить сворачивать форму?

Сообщение Teranas » 03.12.2016 (Сб) 2:47

Вообще ошибка при сворачивании типичная для 3D программ, и производители, что бы упростить задачу отключают сочетания клавиш приводящие к переключению или сворачиванию своей программы
вот, нашел для вас информацию
https://exelab.ru/pro/cpp.php?r=system&d=zdrt928
и вот ещё на тему ошибки
http://www.cyberforum.ru/visual-basic/thread498556.html
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 03.12.2016 (Сб) 13:44

Teranas писал(а):запрещать сворачивать форму не хорошо, 1) это не уважение к пользователю, хотя этот пункт можно игнорировать 2) это вмешательство в работу системы, что пользователю может, не понравится, да и антивирусам, по-секрету


Простите, глупейшее умозаключение.
Как же тут любят разглагольствовать не разобравшись. Неужели так сложно, просто подсказать если знаете ответ. А если не знаете, то просто промолчать.

Я делаю всплывающие панели по бокам экрана. Как были в WinXP примерно. Им по статусу необходимо быть не сворачиваемыми.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 03.12.2016 (Сб) 13:48

Teranas писал(а):Вообще ошибка при сворачивании типичная для 3D программ, и производители, что бы упростить задачу отключают сочетания клавиш приводящие к переключению или сворачиванию своей программы
вот, нашел для вас информацию
https://exelab.ru/pro/cpp.php?r=system&d=zdrt928
и вот ещё на тему ошибки
http://www.cyberforum.ru/visual-basic/thread498556.html

Спасибо за старание и подсказку, это совершенно не то, что мне нужно.

Мне ненужно запрещать Ctrl + Alt + Delete и так же ненужно запрещать другие комбинации. Мне просто нужно, что бы при сворачивании свернулись все формы, но не свернулась моя. Я думал отлавливать комбинации клавиш через Глобал-хук, но таким образом я не отловлю справа в углу экрана сворачивание всех окон или значок свернуть все окна.


Ошибка которая у меня происходит, происходит ещё до прорисовки формы на экране.

при выполнении этой строки:
Код: Выделить всё
SetWindowLongPtr frmLSpeedPanel.hWnd, GWLP_HWNDPARENT, &H1010A


потому ни о каком DirectDraw речи идти не может.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как запретить сворачивать форму?

Сообщение alibek » 03.12.2016 (Сб) 22:22

TrueTrue писал(а):но таким образом я не отловлю справа в углу экрана сворачивание всех окон или значок свернуть все окна.

Дело в том, что этот значок (или команда Win+D) не сворачивает окна, а скрывает их, выводя рабочий стол. Это запретить нельзя.
А сворачивание окна (или Win+M) предотвращается типом окна/границы.
Lasciate ogni speranza, voi ch'entrate.

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Как запретить сворачивать форму?

Сообщение Teranas » 03.12.2016 (Сб) 22:45

глобальные хуки, хм...
Код: Выделить всё
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long
Call SetWindowPos(form1.hwnd, -1, 0, 0, 0, 0, 3)

и Explorer не будет сворачивать форму
С уважением, Андрей.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 03.12.2016 (Сб) 23:15

alibek писал(а):
TrueTrue писал(а):но таким образом я не отловлю справа в углу экрана сворачивание всех окон или значок свернуть все окна.

Дело в том, что этот значок (или команда Win+D) не сворачивает окна, а скрывает их, выводя рабочий стол. Это запретить нельзя.
А сворачивание окна (или Win+M) предотвращается типом окна/границы.


Уважаемый Alibek, судя по вашему рейтингу я не сомневаюсь, что опыт у Вас огромный в VB6, только вот у меня уже почти получилось то, что я хотел.
Код: Выделить всё
SetParent form1.hWnd, &H1010A
решает полностью проблему сворачивания формы. Один единственный нюанс не могу добиться!!!

Форма не сворачивается! Ни значком ни клавишами, остальные сворачиваются, моя нет. Но теперь, проблема в том, что моя форма не выходит поверх Других форм. Тоесть, я кликаю на уголок моей формы, а она остаётся по прежнему внизу. Вероятнее всего, как я думаю это потому, что я сделал её дочерней формой рабочего стола. Может подскажете мне, как можно решить этот момент?

Только повторюсь, мне ненужен TopMost! мне нужно нормальное состояние формы, тоесть что бы при активации, она становилась поверх других.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как запретить сворачивать форму?

Сообщение Хакер » 04.12.2016 (Вс) 1:19

TrueTrue писал(а):Я делаю всплывающие панели по бокам экрана. Как были в WinXP примерно. Им по статусу необходимо быть не сворачиваемыми.

Значит ты делаешь их категорически неправильно.

Покажи скриншотом или на примере, что ты пытаешься сделать?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 04.12.2016 (Вс) 8:30

Хакер писал(а):
TrueTrue писал(а):Я делаю всплывающие панели по бокам экрана. Как были в WinXP примерно. Им по статусу необходимо быть не сворачиваемыми.

Значит ты делаешь их категорически неправильно.

Покажи скриншотом или на примере, что ты пытаешься сделать?


Да я уже давно всё сделал и пользуюсь ими лет 5, просто они всегда сворачивались, мне надоело и я решил заняться этим вопросом. Я такими панелями пользовался всегда в WinXP, потом перешёл на Семёрку, а там таких панелей не было. Пришлось сделать. Мне осталось только разобраться с тем, как им запретить сворачиваться и всё.
Вложения
Панели.png

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Как запретить сворачивать форму?

Сообщение bon818 » 04.12.2016 (Вс) 16:59

TrueTrue писал(а): Я такими панелями пользовался всегда в WinXP, потом перешёл на Семёрку, а там таких панелей не было.

Да уж, сам на семерке то и дело тыкаю мышкой в верхнею часть стола чтоб вылезло окно, а его там нет, очень не удобно когда привыкнешь.
Да вообще неудобно без них. Пытался найти, что то подобное, но так и не нашел.
Вы свою прогу публикуете ? Можно попробовать?

По поводу сворачивания в ХР.
Использовал это:
Файл: Свернуть все окна.scf
Содержимое:
Код: Выделить всё
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

И эти окна-панели тоже сворачиваются, как и все остальные.
Но после все встают на свои места.
Кроме того, не какие уведомления, система в сворачиваемые окна не отсылает(неспроста наверно:)),
так что игнорировать их или как то среагировать не получится (легально).

Изображение Присутствует на экране
Изображение Команда сверну все окна
Вложения
2016-12-04_182715.gif
Присутствует на экране
(26.22 Кб) Скачиваний: 588
2016-12-04_182740.gif
Команда сверну все окна
(24.37 Кб) Скачиваний: 633

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 04.12.2016 (Вс) 17:24

bon818 писал(а):
TrueTrue писал(а): Я такими панелями пользовался всегда в WinXP, потом перешёл на Семёрку, а там таких панелей не было.

Да уж, сам на семерке то и дело тыкаю мышкой в верхнею часть стола чтоб вылезло окно, а его там нет, очень не удобно когда привыкнешь.
Да вообще неудобно без них. Пытался найти, что то подобное, но так и не нашел.
Вы свою прогу публикуете ? Можно попробовать?

По поводу сворачивания в ХР.
Использовал это:
Файл: Свернуть все окна.scf
Содержимое:
Код: Выделить всё
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

И эти окна-панели тоже сворачиваются, как и все остальные.
Но после все встают на свои места.
Кроме того, не какие уведомления, система в сворачиваемые окна не отсылает(неспроста наверно:)),
так что игнорировать их или как то среагировать не получится (легально).

Изображение Присутствует на экране
Изображение Команда сверну все окна


Если интересно, конечно выложу, без проблем, мне не жалко. До ума бы довести.

Как я и сказал, именно запрет сворачивания у меня получилось достичь посредством того, что я сделал эти окна ДОЧЕРНИМИ рабочему столу. НО! Теперь проблема, что они всегда находятся только под Окнами. Тоесть их невозможно вывести на передний план, совсем. Хочу всётаки разобраться с этим вопросом.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как запретить сворачивать форму?

Сообщение Хакер » 04.12.2016 (Вс) 21:31

TrueTrue писал(а):Да я уже давно всё сделал и пользуюсь ими лет 5, просто они всегда сворачивались, мне надоело и я решил заняться этим вопросом.

Хах.
Тот факт, что сделал уже давно (целых 5 лет назад) совершенно не аргумент в пользу того, что ты сделал это правильно. Судя по описанию мучений, как раз получается, что ты не пользовался стандартными системными механизмами, которые система предоставляет всем желающим для создания каких-угодно боковых панелей.

TrueTrue писал(а):Как я и сказал, именно запрет сворачивания у меня получилось достичь посредством того, что я сделал эти окна ДОЧЕРНИМИ рабочему столу. НО! Теперь проблема, что они всегда находятся только под Окнами. Тоесть их невозможно вывести на передний план, совсем. Хочу всётаки разобраться с этим вопросом.

А про системное workarea ты слышишь впервые, скажи?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 04.12.2016 (Вс) 23:01

Хакер писал(а):
TrueTrue писал(а):...А про системное workarea ты слышишь впервые, скажи?


Да, Вы правы, первый раз слышу. Но спасибо Вам за исчерпывающую информацию, за дельные советы, аргументированную помощь, я обязательно распечатаю Вашу аватару и подпишу "Академик VB6" и повешу на стену, что бы знать, что существует такой ЗНАЮЩИЙ человек как Вы!!!))))))

Я очень рад, что хоть что-то остаётся в этой жизни неизменным.))))) С самого первого дня моей регистрации, как занимались тут все писькомерством, лили воду, чесали бестолку, умничали, так и по сей день, эээх, причём в основном это делают старики.Из-за лени ли, а может от высокого мнения о себе, я уже не знаю.))))

Спасибо всем за помощь и участие, я таки добился необходимого результата.

Ниже выкладываю анимированную Гифку, правда в плохом качестве, большой объём вышел, но в принципе и так понятно.
Вложения
bandicam 2016-12-05 02-23-59-262_003.gif
(1.72 МиБ) Скачиваний: 195

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Как запретить сворачивать форму?

Сообщение ger_kar » 05.12.2016 (Пн) 4:26

TrueTrue писал(а):Спасибо всем за помощь и участие, я таки добился необходимого результата.
А как добился то? Я честно сказать из последнего поста мало чего понял.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Как запретить сворачивать форму?

Сообщение Хакер » 05.12.2016 (Пн) 5:39

TrueTrue писал(а):Я очень рад, что хоть что-то остаётся в этой жизни неизменным.

Да, я тоже, сколько здесь сижу, вечно встречаю чудаков, которые, когда им пытаешься искренне помочь — без зла, без издёвки — взрываются своим негодованием по поводу того, что над ними издеваются или оказывают им помощь неправильным образом (как тут в соседнем топике жалуется Вова номерной).

Код не выкладывался, какими механизмами пользуется человек — не ясно. Вопрос о том, пользуется ли он системными механизмами и знает ли про workarea, воспринимает за издевательство. Что тут можно ещё сказать...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 05.12.2016 (Пн) 8:30

ger_kar писал(а):
TrueTrue писал(а):Спасибо всем за помощь и участие, я таки добился необходимого результата.
А как добился то? Я честно сказать из последнего поста мало чего понял.


Я писал выше, что решал вопрос посредством того, что делал родителем формы Рабочий стол.

Так вот при открытии формы, я возвращаю ей предыдущего родителя, а при скрытии снова делаю её дочерней Рабочему столу. Таким образом при активации она работает как нужно а при деактивации её не возможно свернуть. Получилось очень хорошо.

Код: Выделить всё
SetParent form1.hWnd, &H1010A


&H1010A - это hWnd рабочего стола

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

TrueTrue
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 167
Зарегистрирован: 20.05.2009 (Ср) 23:18

Re: Как запретить сворачивать форму?

Сообщение TrueTrue » 05.12.2016 (Пн) 8:35

Хакер писал(а):
TrueTrue писал(а):Я очень рад, что хоть что-то остаётся в этой жизни неизменным.

Да, я тоже, сколько здесь сижу, вечно встречаю чудаков, которые, когда им пытаешься искренне помочь — без зла, без издёвки — взрываются своим негодованием по поводу того, что над ними издеваются или оказывают им помощь неправильным образом (как тут в соседнем топике жалуется Вова номерной).

Код не выкладывался, какими механизмами пользуется человек — не ясно. Вопрос о том, пользуется ли он системными механизмами и знает ли про workarea, воспринимает за издевательство. Что тут можно ещё сказать...

Уважаемый, в этой теме Вы отметились 3 или даже 4 раза, что бы не сказать "пометили тему"... и ни один из Ваших постов не был хоть малость информативным. Кичились и отмазывались. Спасибо. Кто хочет реально помочь и поучаствовать, помогает и участвует. Я подробно расписал всё, пояснил и выложил часть кода.

Просто возьмите себе уже наконец за правило, знаете - посоветуйте, не знаете просто молчите и всё.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 32

    TopList