запретить wxFrame изменять размер
запретить wxFrame изменять размер
Хочу, что бы моё окно (wxFrame) оставалось всегда одного размера. На яве например есть функция setResizable(false) для этого, в документации wxWidgets я к сожалению ничего похожего не нашёл. Может кто подсказать как сделать нечто подобное в wxWidgets? Я использую CodeBlocks с wxSmith.
Re: запретить wxFrame изменять размер
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.
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 изменять размер
wxMINIMIZE_BOX убирать не надо, просто не хочу, что бы размер окна можно было изменят как с помощью wxMAXIMIZE_BOX так и с помощью мыши.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, wxSYSTEM_MENU, wxCAPTION, wxCLOSE_BOX и wxCLIP_CHILDREN галочки поставить, а с wxDEFAULT_FRAME_STYLE убрать?
Re: запретить wxFrame изменять размер
Необходимо установить минимальный и максимальный размер окна. 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.
"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 изменять размер
Aga.
Esli rabotat ne budet - otpishites'
Esli rabotat ne budet - otpishites'
Re: запретить wxFrame изменять размер
Поставил галочки на wxMINIMIZE_BOX, wxCAPTION и wxCLOSE_BOX и убрал галочку с wxDEFAULT_FRAME_STYLE и всё получилось. Я так понимаю, что если захочу использовать меню, то надо ещё поставить галочку на wxSYSTEM_MENU, а вот для чего этот флаг wxCLIP_CHILDREN я к сожалению не понял.
Re: запретить wxFrame изменять размер
https://translate.google.com/#en/ru/clipping%20box
Eto znachit chto okoshko budet perekryvat svoih potomkov.
Eto znachit chto okoshko budet perekryvat svoih potomkov.
Re: запретить wxFrame изменять размер
Вот это я не совсем понимаю, что за потомки? Другие окна что ли?ONEEYEMAN wrote:https://translate.google.com/#en/ru/clipping%20box
Eto znachit chto okoshko budet perekryvat svoih potomkov.
Re: запретить wxFrame изменять размер
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).
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 изменять размер
А значит таки потомки в смысле структуры дерева?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 изменять размер
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.
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 изменять размер
Ну я понял, просто играясь с этим флагом не заметил никаких изменений, кнопки и другие элементы окна от перемены значения этого флага не как не изменялись.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.
За помощь спасибо.