Страница 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).