Как сделать настраиваемую рамку без изменения размера и перемещения в wxWidgets?

Я пишу приложение на C ++, используя wxWidgets в качестве библиотеки GUI, и я хочу создавать собственные окна. Я хочу, чтобы они выглядели как Visual Studio или 3ds Max. Можно ли удалить границу, но оставить функцию изменения размера и перемещения? я могу использовать wxBORDER_NONE и перехватывать все события для удаления и изменения размера (я надеюсь), но, по моему мнению, должен быть более простой способ настроить внешний вид wxFrame. Может быть, что-то вроде файла, который содержит все необходимые растровые изображения и настройки или что-то в этом роде?

Пример изображения с этими функциями, которые мне нужны:

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

1

Решение

Вы не сможете сделать это портативным способом, поэтому wxWidgets не предоставляет для этого API. Но вы можете сделать это для Windows только обычным способом, то есть удалить нормальные границы (wxBORDER_NONE стиль) и управляемость WM_NCHITTEST в твоем переопределении MSWWindowProc() притворяться, что определенные части вашего окна ведут себя как стандартные границы.

2

Другие решения


По вопросам рекламы [email protected]