WxSizerFlags
Container for sizer items flags providing readable names for them.
Alignment
Add()
를 사용하여 wxWindow를 추가할 경우 정렬 방법을 설정하고 싶을 경우 flag
인자에 wxAlignment관련 상수를 OR 연산으로 입력하면 된다.
해당 플래그 값은 아래와 같다.
-
wxALIGN_LEFT
-
wxALIGN_RIGHT
-
wxALIGN_TOP
-
wxALIGN_BOTTOM
-
wxALIGN_CENTER_VERTICAL
-
wxALIGN_CENTER_HORIZONTAL
-
wxALIGN_CENTER
중요한 점은 위의 플래그 값은 오직 정렬에 한정되어 적용된다는 점이다. wxEXPAND
와 같은 Stretch관련 상수와 관련 없음을 주의해야 한다.
ALIGN CENTER
중앙정렬시 주의할 점이 있다. 우선 아래와 같은 코드를 보자:
wxBoxSizer * sizer = new (std::nothrow) wxBoxSizer(wxVERTICAL);
wxButton * btn = new (std::nothrow) wxButton(this, wxID_ANY, wxT("BUTTON"));
sizer->Add(btn, 0, wxALIGN_CENTER_VERTICAL);
위의 코드와 같이 사용할 경우 정상적으로 세로 정렬이 적용되지 않는다. 그 이유는 wxBoxSizer의 Orientation이 동일하게 VERTICAL이기 때문이다.
wxBoxSizer에서 wxALIGN_CENTER
관련 정렬을 적용할 경우 Orientation과 상반되는 정렬을 사용해야 한다.
즉, 위의 코드에서는 wxBoxSizer의 Orientation이 wxHORIZONTAL
되도록 유도해야 한다.
또한 wxEXPAND
속성이 존재하면 안된다.
Border
Add()
를 사용하여 wxWindow를 추가할 경우 BORDER를 적용할 위치를 선정하고 싶을 경우 flag
인자에 wxDirection관련 상수를 OR 연산으로 입력하면 된다.
해당 플래그 값은 아래와 같다.
-
wxLEFT
-
wxRIGHT
-
wxBOTTOM
-
wxTOP
-
wxALL
중요한 점은 위의 플래그 값은 오직 BORDER에 한정되어 적용된다는 점이다. wxEXPAND
와 같은 Stretch관련 상수와 관련 없음을 주의해야 한다.
참고로 Border 스타일과 관련된 내용은 wxBorder를 참고하면 된다.
Stretch
wxStretch관련 상수를 사용하면 된다.
해당 플래그 값은 아래와 같다.
-
wxEXPAND
: 할당된 공간을 확장하여 채운다. -
wxSHAPED
: 종횡비를 유지하여 확장한다.
Empty space
Window 사이에 빈 공간을 추가하고 싶다면 아래와 같이 사용하면 된다.
wxBoxSizer * sizer = new wxBoxSizer(wxHORIZONTAL);
sizer->Add(_ok);
sizer->Add(5, 0); // Empty 5px (width) size.
sizer->Add(_cancel);
panel->SetSizer(sizer);
Detailed Description
Normally, when you add an item to a sizer via wxSizer::Add
, you have to specify a lot of flags and parameters which can be unwieldy. This is where wxSizerFlags
comes in: it allows you to specify all parameters using the named methods instead. For example, instead of
you can now write