프로그래밍/wxWidgets
[wxWidgets] 콤보박스에서 현재 컴퓨터의 FontFamily을 가지고 오기.
JunkMam
2024. 2. 7. 12:00
wxWidgets에서는 FontFamily를 가지고 열거하는 'wxFontEnumerator' 클래스가 존재한다.
그래서 이걸 사용하기 위해서 wxOptions.h와 wxOptions.cpp을 다음과 같이 수정한다.
wxOptions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#pragma once
#include <wx/wx.h>
#include <wx/combobox.h>
#include <wx/fontenum.h>
#ifndef __WX_WIDGETS_OPTION_DIALOG_H__
#define __WX_WIDGETS_OPTION_DIALOG_H__
// ID 값 정의
enum
{
ID_Options = wxID_HIGHEST + 1 // 사용자 정의 ID
};
class wxOptionDialog : public wxDialog
{
public:
wxOptionDialog(wxWindow* parent, wxWindowID id, const wxString& title,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_DIALOG_STYLE);
};
#endif
|
cs |
wxOptions.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <wx/wx.h>
#include "wxOptionsDialog.h"
wxOptionDialog::wxOptionDialog(wxWindow* parent, wxWindowID id, const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style)
: wxDialog(parent, id, title, pos, size, style) {
// 설정 대화 상자의 내용을 여기에 구성
// 예: 설정 옵션을 위한 컨트롤 추가
new wxStaticText(this, wxID_ANY, "Font Family", wxPoint(20, 20), wxDefaultSize);
// 콤보박스 생성 및 옵션 추가
wxComboBox* comboBox = new wxComboBox(this, wxID_ANY, "", wxPoint(20, 50), wxSize(150, -1));
// 사용 가능한 폰트 패밀리 목록을 가져옵니다.
wxArrayString fontFamilies = wxFontEnumerator::GetFacenames(wxFONTENCODING_SYSTEM, false);
// 콤보박스에 폰트 패밀리를 추가합니다. foreach문 사용.
for (const wxString& fontFamily : fontFamilies) {
comboBox->Append(fontFamily);
}
// OK 및 Cancel 버튼 추가
CreateStdDialogButtonSizer(wxOK | wxCANCEL);
}
|
cs |
이렇게 사용하면, FontFamily를 아주 간단하게 출력할 수 있는걸 확인 할 수 있다.