PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » EditorGadget и бордюр


EditorGadget и бордюр

Сообщений 1 страница 5 из 5

1

Вопрос: как избавиться от бордюра (поребрика) в EditorGadget?

А вот - нашел:

Код:
  SetWindowTheme_(GadgetID(0), @"", @"")
  SetWindowLongPtr_(GadgetID(0), #GWL_EXSTYLE, 0)
  SetWindowPos_(GadgetID(0), 0, 0, 0, 0, 0, #SWP_NOMOVE | #SWP_NOSIZE | #SWP_FRAMECHANGED)

Вроде как работает...

Отредактировано Andruk (20.02.2025 19:52:31)

0

2

или

Код:
Procedure EditorGadgetNoBorder(iID.i,iX.i,iY.i,iW.i,iH.i)
  If ContainerGadget(#PB_Any,iX,iY,iW,iH)
    result.i = EditorGadget(iID,-2,-2,iW+4,iH+4)
    CloseGadgetList()
  Else
    result.i = 0
  EndIf
  ProcedureReturn result
EndProcedure

If OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  EditorGadgetNoBorder(0, 8, 8, 306, 133)
  For a = 0 To 5
    AddGadgetItem(0, a, "Line "+Str(a))
  Next
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Отредактировано Lin (20.02.2025 19:57:48)

+1

3

Lin написал(а):

или

Нормально! Спасибо.

Отредактировано Andruk (20.02.2025 21:01:46)

0

4

взял и удалил ВСЕ расширенные стили, а если были стили кроме бордюра?
сомнительное упрощение

Код:
SetWindowLongPtr_(GadgetID(0), #GWL_EXSTYLE, 0)

наверно сначала надо прочесть все константы, удалить конкретную, добавить что то новое
удаляем бордюр

Код:
SetWindowLongPtr_(hwnd, #GWL_EXSTYLE, GetWindowLongPtr_(hwnd, #GWL_EXSTYLE) ! #WS_EX_CLIENTEDGE)

добавляем другой бордюр

Код:
SetWindowLongPtr_(hwnd, #GWL_STYLE, GetWindowLongPtr_(hwnd, #GWL_STYLE) | #WS_BORDER)

и не забываем что есть #GWL_EXSTYLE и #GWL_STYLE

0

5

без неё работает

Код:
SetWindowLongPtr_(GadgetID(0), #GWL_EXSTYLE, 0)

Знак "!" здесь не подходит, нужно &~ (читать тут)

Код:
SetWindowLongPtr_(hwnd, #GWL_EXSTYLE, GetWindowLongPtr_(hwnd, #GWL_EXSTYLE) ! #WS_EX_CLIENTEDGE)

Ну а вообще я пробовал сразу же, это просто не работает, причину не выяснил, не работает и всё. Пробовал все обычные стили с разными границами и расширенные стили с разными границами.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » EditorGadget и бордюр