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

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
gtafan
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Wed Apr 12, 2017 11:19 am

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

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2752
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Postby ONEEYEMAN » Wed Apr 12, 2017 2:03 pm

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
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Thu Apr 13, 2017 1:18 pm

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
Earned a small fee
Earned a small fee
Posts: 13
Joined: Thu Apr 13, 2017 1:34 pm

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

Postby Serge_N » Thu Apr 13, 2017 1:40 pm

Необходимо установить минимальный и максимальный размер окна. 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: 2752
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Postby ONEEYEMAN » Thu Apr 13, 2017 1:40 pm

Aga.
Esli rabotat ne budet - otpishites'

gtafan
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Tue Apr 18, 2017 1:57 pm

Поставил галочки на wxMINIMIZE_BOX, wxCAPTION и wxCLOSE_BOX и убрал галочку с wxDEFAULT_FRAME_STYLE и всё получилось. Я так понимаю, что если захочу использовать меню, то надо ещё поставить галочку на wxSYSTEM_MENU, а вот для чего этот флаг wxCLIP_CHILDREN я к сожалению не понял.

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 2752
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Postby ONEEYEMAN » Tue Apr 18, 2017 2:07 pm

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

Eto znachit chto okoshko budet perekryvat svoih potomkov.

gtafan
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Tue Apr 18, 2017 3:49 pm

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: 2752
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Postby ONEEYEMAN » Tue Apr 18, 2017 3:58 pm

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
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Wed Apr 19, 2017 11:39 am

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: 2752
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

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

Postby ONEEYEMAN » Wed Apr 19, 2017 12:48 pm

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
Earned some good credits
Earned some good credits
Posts: 120
Joined: Wed Mar 29, 2017 9:52 am

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

Postby gtafan » Wed Apr 19, 2017 3:32 pm

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.

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


Return to “wxWidgets Development (Russian)”

Who is online

Users browsing this forum: No registered users and 2 guests