запретить wxFrame изменять размер

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

запретить wxFrame изменять размер

Post by gtafan »

Хочу, что бы моё окно (wxFrame) оставалось всегда одного размера. На яве например есть функция setResizable(false) для этого, в документации wxWidgets я к сожалению ничего похожего не нашёл. Может кто подсказать как сделать нечто подобное в wxWidgets? Я использую CodeBlocks с wxSmith.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: запретить wxFrame изменять размер

Post by ONEEYEMAN »

Dobrogo vremeni sutok,
Zahodili sjuda: http://docs.wxwidgets.org/trunk/classwx_frame.html?

Esli wxFrame sozdavalas so stiljami po umolchniju - ispolzuetsja wxRESIZE_BORDER.

Esli ne pomoget - pishite.

I esche - ja tak ponimaju chto nugno ubrat wxMINIMIZE_BOX/wxMAXIMIZE_BOX ottuda ge.
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

Re: запретить wxFrame изменять размер

Post by gtafan »

ONEEYEMAN wrote:Dobrogo vremeni sutok,
Zahodili sjuda: http://docs.wxwidgets.org/trunk/classwx_frame.html?

Esli wxFrame sozdavalas so stiljami po umolchniju - ispolzuetsja wxRESIZE_BORDER.

Esli ne pomoget - pishite.

I esche - ja tak ponimaju chto nugno ubrat wxMINIMIZE_BOX/wxMAXIMIZE_BOX ottuda ge.
wxMINIMIZE_BOX убирать не надо, просто не хочу, что бы размер окна можно было изменят как с помощью wxMAXIMIZE_BOX так и с помощью мыши.
Так что на wxMINIMIZE_BOX, wxSYSTEM_MENU, wxCAPTION, wxCLOSE_BOX и wxCLIP_CHILDREN галочки поставить, а с wxDEFAULT_FRAME_STYLE убрать?
Serge_N
Knows some wx things
Knows some wx things
Posts: 40
Joined: Thu Apr 13, 2017 1:34 pm

Re: запретить wxFrame изменять размер

Post by Serge_N »

Необходимо установить минимальный и максимальный размер окна. http://docs.wxwidgets.org/3.0/overview_ ... izing.html


"Minimal Size": the minimal size of a widget is a size that is normally explicitly set by the programmer either with the wxWindow::SetMinSize() method or with the wxWindow::SetSizeHints() method. Most controls will also set the minimal size to the size given in the control's constructor if a non-default value is passed. Top-level windows such as wxFrame will not allow the user to resize the frame below the minimal size.

"Maximum Size": just like for the minimal size, the maximum size is normally explicitly set by the programmer with the wxWindow::SetMaxSize() method or with wxWindow::SetSizeHints(). Top-level windows such as wxFrame will not allow the user to resize the frame above the maximum size.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: запретить wxFrame изменять размер

Post by ONEEYEMAN »

Aga.
Esli rabotat ne budet - otpishites'
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

Re: запретить wxFrame изменять размер

Post by gtafan »

Поставил галочки на wxMINIMIZE_BOX, wxCAPTION и wxCLOSE_BOX и убрал галочку с wxDEFAULT_FRAME_STYLE и всё получилось. Я так понимаю, что если захочу использовать меню, то надо ещё поставить галочку на wxSYSTEM_MENU, а вот для чего этот флаг wxCLIP_CHILDREN я к сожалению не понял.
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: запретить wxFrame изменять размер

Post by ONEEYEMAN »

https://translate.google.com/#en/ru/clipping%20box

Eto znachit chto okoshko budet perekryvat svoih potomkov.
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

Re: запретить wxFrame изменять размер

Post by gtafan »

ONEEYEMAN wrote:https://translate.google.com/#en/ru/clipping%20box

Eto znachit chto okoshko budet perekryvat svoih potomkov.
Вот это я не совсем понимаю, что за потомки? Другие окна что ли?
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: запретить wxFrame изменять размер

Post by ONEEYEMAN »

Pervyj parametr u konstruktora, i.e. wxButton:

wxButton *ok = new wxButton( m_panel, .... );

Dlja obekta m_panel knopka "ok" javljaetsja potomkom. I naoborot - dlja knopki "ok" m_panel javlaetsja roditelem (parent).
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

Re: запретить wxFrame изменять размер

Post by gtafan »

ONEEYEMAN wrote:Pervyj parametr u konstruktora, i.e. wxButton:

wxButton *ok = new wxButton( m_panel, .... );

Dlja obekta m_panel knopka "ok" javljaetsja potomkom. I naoborot - dlja knopki "ok" m_panel javlaetsja roditelem (parent).
А значит таки потомки в смысле структуры дерева?
ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 7459
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Re: запретить wxFrame изменять размер

Post by ONEEYEMAN »

Kogda okoshko sozdaetsja, u objekta okna dolgen byt roditel - okno po otnosheniju k kotoromu schitajutsja koordinaty i v predelah kotorogo eto okno moget peredvigatsja.

Takim roditelem moget byt uge suschestvujuschee okno ili NULL - v poslednem sluchae roditelem vystupaet Desktop/Rabochij stol.

Okno roditelja ukazyvaetsja pervym parametrom v kostruktore.

wxWindow( wxWindow *parent,.....);
wxButton( wxWindow *parent,......);
wxComboBox(wxWindow *parent,..);

i tak dalee.

Dlja vseh etih objektov pervym parametrom peredaetsja roditel/parent window.

Dlja etogo roditelja vse ego deti - te okna dlja kotoryh eto okno javljaetsja roditelem - budut ego potomkami.

Imejte v vidu chto nelzja sozdat okno bez roditelja - ukazav NULL vy govorite chto u okna roditelem budet vystupat Rabocjk Stol/Desktop.

Otnoshenija parent/child ne zavisjat ot tak nazyvaemogo Z-order - pologenija okna v strukture sistemy kotoroe mogno uvidet naprimer pri nagatii ALT+TAB.

Hope this helps.
gtafan
Filthy Rich wx Solver
Filthy Rich wx Solver
Posts: 201
Joined: Wed Mar 29, 2017 9:52 am

Re: запретить wxFrame изменять размер

Post by gtafan »

ONEEYEMAN wrote:Kogda okoshko sozdaetsja, u objekta okna dolgen byt roditel - okno po otnosheniju k kotoromu schitajutsja koordinaty i v predelah kotorogo eto okno moget peredvigatsja.

Takim roditelem moget byt uge suschestvujuschee okno ili NULL - v poslednem sluchae roditelem vystupaet Desktop/Rabochij stol.

Okno roditelja ukazyvaetsja pervym parametrom v kostruktore.

wxWindow( wxWindow *parent,.....);
wxButton( wxWindow *parent,......);
wxComboBox(wxWindow *parent,..);

i tak dalee.

Dlja vseh etih objektov pervym parametrom peredaetsja roditel/parent window.

Dlja etogo roditelja vse ego deti - te okna dlja kotoryh eto okno javljaetsja roditelem - budut ego potomkami.

Imejte v vidu chto nelzja sozdat okno bez roditelja - ukazav NULL vy govorite chto u okna roditelem budet vystupat Rabocjk Stol/Desktop.

Otnoshenija parent/child ne zavisjat ot tak nazyvaemogo Z-order - pologenija okna v strukture sistemy kotoroe mogno uvidet naprimer pri nagatii ALT+TAB.

Hope this helps.
Ну я понял, просто играясь с этим флагом не заметил никаких изменений, кнопки и другие элементы окна от перемены значения этого флага не как не изменялись.
За помощь спасибо.
Post Reply