Если вы посмотрите документацию для wxFrame , то в разделе стилей будет указано, что wxDEFAULT_FRAME_STYLE
определено как
wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN.
Чтобы сделать так, чтобы пользователь не мог изменить размер окно, вам просто нужно удалить wxRESIZE_BORDER
из этого набора. Например:
main::main() : wxFrame(nullptr, wxID_ANY, "Usage Statistics Viewing Console",
wxDefaultPosition, wxSize(1008, 567),
wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxSYSTEM_MENU
| wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN)
{...
или, если вы знакомы с побитовыми операциями C, вы можете написать это более компактно:
main::main() : wxFrame(nullptr, wxID_ANY, "Usage Statistics Viewing Console",
wxDefaultPosition, wxSize(1008, 567),
wxDEFAULT_FRAME_STYLE & ~wxRESIZE_BORDER)
Я бы хотел предложить 2 других предложения. Во-первых, вы можете улучшить внешний вид своих рамок, используя панель в качестве единственного прямого дочернего элемента рамки, а затем сделать все остальные элементы управления дочерними для панели.
wxPanel* panel = new wxPanel(this, wxID_ANY);
m_btn1 = new wxButton(panel, wxID_ANY, "Connect Database", wxPoint(10, 10), wxSize(150, 50));
m_txt1 = new wxTextCtrl(panel, wxID_ANY, " ", wxPoint(10, 70), wxSize(300, 30));
m_list1 = new wxListBox(panel, wxID_ANY, wxPoint(10, 110), wxSize(300, 300));
Во-вторых, в какой-то момент вы должны посмотреть использование sizer для управления размером и положением ваших элементов управления вместо использования параметров size и position в конструкторе элементов управления. Размеры могут быть немного сложными для изучения, но они очень полезны, когда вы освоите их. Существуют также такие инструменты, как wxFormbuilder или wxCrafter, которые могут помочь с разметкой ваших форм с помощью sizer.