Страница 1 из 1
Window отключить min и max
Добавлено: 25 Сентябрь 2017, 9:53
gopstop2007
Есть окна в которых надо использовать свою иконку, но без миними(максима)лизации иконок в правом верхнем углу окна, оставив крестик.

- так не надо
- ic_2.jpg (2.12 КБ) 2731 просмотр

- надо так
- ic_1.jpg (2.71 КБ) 2731 просмотр
Есть ли решение данного вопроса?
Заранее спасибо
С10 ABC
Window отключить min и max
Добавлено: 25 Сентябрь 2017, 10:13
kreator
Если икону убрать, то будет один крест.
Window отключить min и max
Добавлено: 25 Сентябрь 2017, 10:36
gopstop2007
kreator писал(а): 25 Сентябрь 2017, 10:13
Если икону убрать, то будет один крест.
знаю, но так наглядней, если окно маленькое.
Кстати у А. Мялина в шаблонах было такое решение.
Window отключить min и max
Добавлено: 25 Сентябрь 2017, 11:04
kreator
Не понял. Что не так?
Window отключить min и max
Добавлено: 25 Сентябрь 2017, 13:50
Yufil
Можно, наверное, перехватить событие Event:Iconize и Event:Maximize
Код: Выделить всё
window.TakeEvent
....
Of Event:Iconize
Cycle
....
Of Event:Maximize
Cycle
Пардон, не понял вопроса. Надо копать в сторону функций GetWindowLong/SetWindowLong
Например, у меня вызов
Код: Выделить всё
Hwnd#=Window{Prop:Handle}
If SetWindowLong(Hwnd#, GWL_EXSTYLE, BOR(GetWindowLong(Hwnd#, GWL_EXSTYLE), WS_EX_TOOLWINDOW)).
создаёт фрейм вообще без рамки. Надо покопаться в настройках и поменять WS_EX_TOOLWINDOW на что-то адекаватное.
Да, ещё тулбоксы имеют узкую полоску, мож попробовать окно тулбоксом объявить...
Window отключить min и max
Добавлено: 27 Сентябрь 2017, 10:49
gopstop2007
Yufil писал(а): 25 Сентябрь 2017, 13:50
Например, у меня вызов
Код: Выделить всё
Hwnd#=Window{Prop:Handle}
If SetWindowLong(Hwnd#, GWL_EXSTYLE, BOR(GetWindowLong(Hwnd#, GWL_EXSTYLE), WS_EX_TOOLWINDOW)).
Спасибо, буду смотреть

Window отключить min и max
Добавлено: 27 Сентябрь 2017, 10:56
kreator
Мне всё же непонятно, чем мой вариант (убрать икону) не подходит?
Window отключить min и max
Добавлено: 27 Сентябрь 2017, 11:00
gopstop2007
gopstop2007 писал(а): 25 Сентябрь 2017, 9:53
Есть окна в которых надо использовать свою иконку
где я написал что надо убрать иконку?

мне надо мин и макс убрать
Window отключить min и max
Добавлено: 27 Сентябрь 2017, 11:44
kreator
gopstop2007 писал(а): 27 Сентябрь 2017, 11:00
где я написал что надо убрать иконку?

мне надо мин и макс убрать
Попробуй. Мин, макс уберутся. А иконка вставится из глобальных настроек. Для начала. А дальше можно попробовать и пошаманить.
Window отключить min и max
Добавлено: 27 Сентябрь 2017, 13:37
Yufil
SetWindowLong позволяет явно управлять показом иконок максимизации и минимизации.
Код: Выделить всё
https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633591(v=vs.85).aspx
Можно даже полупрозрачное окно сделать
WH# = 0{Prop:Handle}
Ret# = GetWindowLong(WH, GWL_EXSTYLE)
Ret# = BOR(Ret#,WS_EX_LAYERED)
If SetWindowLong(WH#,GWL_EXSTYLE,Ret#).
If SetLayeredWindowAttributes(WH#,0,200,LWA_ALPHA).