크로스플랫폼 GUI 라이브러리. 옛날에는 걍 소스만 파서, GUI 디자인했어야 했는데, 폼빌더라는 GUI 에디터도 언제부터인지 생겼다.
사실 C++로 GUI를 필요로 하는 툴 만들 때에는 WTL 혹은 C++ Builder를 썼는데, WTL은 아무래도 할 일이 너무 많고, C++ Builder는 마이너하다는 점이 계속 걸려서 그 중간 지점으로 공부 중. 크로스플랫폼 따위 별 관심도 없다.
추가
const wxString RESOURCE_ROOT_NAME = wxT("서버 데이터 루트"); const wxString PERFORCE_SERVER_ROOT_NAME = wxT("서버 디팟 경로"); const wxString PERFORCE_CLIENT_ROOT_NAME = wxT("클라이언트 디팟 경로"); PropertyGrid->AppendCategory(wxT("데이터")); PropertyGrid->Append(RESOURCE_ROOT_NAME, wxPG_LABEL, wxString(g_Option.GetResourceRoot().c_str())); PropertyGrid->AppendCategory(wxT("퍼포스")); PropertyGrid->Append(PERFORCE_SERVER_ROOT_NAME, wxPG_LABEL, wxString(g_Option.GetPerforceServerRoot().c_str())); PropertyGrid->Append(PERFORCE_CLIENT_ROOT_NAME, wxPG_LABEL, wxString(g_Option.GetPerforceClientRoot().c_str()));
읽기
const wxString RESOURCE_ROOT_NAME = wxT("서버 데이터 루트"); const wxString PERFORCE_SERVER_ROOT_NAME = wxT("서버 디팟 경로"); const wxString PERFORCE_CLIENT_ROOT_NAME = wxT("클라이언트 디팟 경로"); tstring perforceServerRoot = PropertyGrid->GetPropertyValueAsString(PERFORCE_SERVER_ROOT_NAME); tstring perforceClientRoot = PropertyGrid->GetPropertyValueAsString(PERFORCE_CLIENT_ROOT_NAME);
문서라고는 개떡 같은 함수 레퍼런스 밖에 없네.
tree->AddColumn(_T("타입")); tree->AddColumn(_T("데이터베이스")); tree->AddColumn(_T("옵션")); wxTreeItemId root = tree->AddRoot(""); for (size_t i=0 i<5; ++i) { wxTreeItemId parent = tree->AppendItem(root, "이것은 그룹 텍스트"); //tree->SetItemBold(parent, true); //tree->SetItemBackgroundColour(parent, wxSystemSettings::GetColour(wxSYS_COLOUR_INACTIVEBORDER)); for (size_t i=0; i<10; ++i) { wxTreeItemId index = tree->AppendItem(parent, "이것은 첫번째 컬럼"); tree->SetItemText(index, 1, "이것은 두번째 컬럼"); tree->SetItemText(index, 2, "이것은 세번째 컬럼"); } } tree->ExpandAll(root);
wx/settings.h
// possible values for wxSystemSettings::GetColour() parameter // // NB: wxMSW assumes that they have the same values as the parameters of // Windows GetSysColor() API, don't change the values! enum wxSystemColour { wxSYS_COLOUR_SCROLLBAR, wxSYS_COLOUR_BACKGROUND, wxSYS_COLOUR_DESKTOP = wxSYS_COLOUR_BACKGROUND, wxSYS_COLOUR_ACTIVECAPTION, wxSYS_COLOUR_INACTIVECAPTION, wxSYS_COLOUR_MENU, wxSYS_COLOUR_WINDOW, wxSYS_COLOUR_WINDOWFRAME, wxSYS_COLOUR_MENUTEXT, wxSYS_COLOUR_WINDOWTEXT, wxSYS_COLOUR_CAPTIONTEXT, wxSYS_COLOUR_ACTIVEBORDER, wxSYS_COLOUR_INACTIVEBORDER, wxSYS_COLOUR_APPWORKSPACE, wxSYS_COLOUR_HIGHLIGHT, wxSYS_COLOUR_HIGHLIGHTTEXT, wxSYS_COLOUR_BTNFACE, wxSYS_COLOUR_3DFACE = wxSYS_COLOUR_BTNFACE, wxSYS_COLOUR_BTNSHADOW, wxSYS_COLOUR_3DSHADOW = wxSYS_COLOUR_BTNSHADOW, wxSYS_COLOUR_GRAYTEXT, wxSYS_COLOUR_BTNTEXT, wxSYS_COLOUR_INACTIVECAPTIONTEXT, wxSYS_COLOUR_BTNHIGHLIGHT, wxSYS_COLOUR_BTNHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, wxSYS_COLOUR_3DHIGHLIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, wxSYS_COLOUR_3DHILIGHT = wxSYS_COLOUR_BTNHIGHLIGHT, wxSYS_COLOUR_3DDKSHADOW, wxSYS_COLOUR_3DLIGHT, wxSYS_COLOUR_INFOTEXT, wxSYS_COLOUR_INFOBK, wxSYS_COLOUR_LISTBOX, wxSYS_COLOUR_HOTLIGHT, wxSYS_COLOUR_GRADIENTACTIVECAPTION, wxSYS_COLOUR_GRADIENTINACTIVECAPTION, wxSYS_COLOUR_MENUHILIGHT, wxSYS_COLOUR_MENUBAR, wxSYS_COLOUR_MAX };
기본적으로 위자드를 이용해서 생성하는 것이 가장 편하지만, 어쩔 수 없이 수동으로 생성해야 한다면…
$(WXWIN)/include;$(WXADDITIONS)/include;$(WXWIN)/contrib/include
WIN32;STRICT;__WXMSW__;__WX__;_DEBUG;__WXDEBUG__;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_HAS_ITERATOR_DEBUGGING=0;
WIN32;STRICT;__WXMSW__;__WX__;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_HAS_ITERATOR_DEBUGGING=0;
$(WXWIN)/include/wx/wxprec.h; $(WXWIN)/include/msvc/wx/setup.h
$(WXWIN)/lib/vc_lib;$(WXADDITIONS)/lib/vc_lib
comctl32.lib rpcrt4.lib winmm.lib wsock32.lib