Page 1 of 1

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

Posted: Wed Apr 12, 2017 11:19 am
by gtafan
Хочу, что бы моё окно (wxFrame) оставалось всегда одного размера. На яве например есть функция setResizable(false) для этого, в документации wxWidgets я к сожалению ничего похожего не нашёл. Может кто подсказать как сделать нечто подобное в wxWidgets? Я использую CodeBlocks с wxSmith.

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

Posted: Wed Apr 12, 2017 2:03 pm
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.

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

Posted: Thu Apr 13, 2017 1:18 pm
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 убрать?

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

Posted: Thu Apr 13, 2017 1:40 pm
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.

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

Posted: Thu Apr 13, 2017 1:40 pm
by ONEEYEMAN
Aga.
Esli rabotat ne budet - otpishites'

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

Posted: Tue Apr 18, 2017 1:57 pm
by gtafan
Поставил галочки на wxMINIMIZE_BOX, wxCAPTION и wxCLOSE_BOX и убрал галочку с wxDEFAULT_FRAME_STYLE и всё получилось. Я так понимаю, что если захочу использовать меню, то надо ещё поставить галочку на wxSYSTEM_MENU, а вот для чего этот флаг wxCLIP_CHILDREN я к сожалению не понял.

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

Posted: Tue Apr 18, 2017 2:07 pm
by ONEEYEMAN
https://translate.google.com/#en/ru/clipping%20box

Eto znachit chto okoshko budet perekryvat svoih potomkov.

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

Posted: Tue Apr 18, 2017 3:49 pm
by gtafan
ONEEYEMAN wrote:https://translate.google.com/#en/ru/clipping%20box

Eto znachit chto okoshko budet perekryvat svoih potomkov.
Вот это я не совсем понимаю, что за потомки? Другие окна что ли?

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

Posted: Tue Apr 18, 2017 3:58 pm
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).

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

Posted: Wed Apr 19, 2017 11:39 am
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).
А значит таки потомки в смысле структуры дерева?

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

Posted: Wed Apr 19, 2017 12:48 pm
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.

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

Posted: Wed Apr 19, 2017 3:32 pm
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.
Ну я понял, просто играясь с этим флагом не заметил никаких изменений, кнопки и другие элементы окна от перемены значения этого флага не как не изменялись.
За помощь спасибо.