wxMain.h에는 이벤트 핸들러를 추가해준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
// Edit 메뉴에 적용할 이벤트 핸들러
void OnUndo(wxCommandEvent& event);
void OnRedo(wxCommandEvent& event);
void OnCut(wxCommandEvent& event);
void OnCopy(wxCommandEvent& event);
void OnPaste(wxCommandEvent& event);
// 메뉴 동적 활성화 하기 위한 이벤트 핸들러
void OnUpdateUndo(wxUpdateUIEvent& event);
void OnUpdateRedo(wxUpdateUIEvent& event);
void OnUpdateCut(wxUpdateUIEvent& event);
void OnUpdateCopy(wxUpdateUIEvent& event);
void OnUpdatePaste(wxUpdateUIEvent& event);
|
cs |
wxMain.cpp에는 메뉴 추가 및 이벤트 핸들러를 연결한다.
1
2
3
4
5
6
7
8
9
10
|
m_menuEdit = new wxMenu;
m_menuEdit->Append(wxID_UNDO, "&Undo\tCtrl+Z", "Undo the last action");
m_menuEdit->Append(wxID_REDO, "&Redo\tCtrl+Y", "Redo the last undone action");
m_menuFile->AppendSeparator();
m_menuEdit->Append(wxID_CUT, "Cu&t\tCtrl+X", "Cut the selected text to the clipboard");
m_menuEdit->Append(wxID_COPY, "&Copy\tCtrl+C", "Copy the selected text to the clipboard");
m_menuEdit->Append(wxID_PASTE, "&Paste\tCtrl+V", "Paste text from the clipboard");
m_menuEdit->Append(ID_SELECT_ALL, "&Select All\tCtrl+A", "Select all text");
m_menuFile->AppendSeparator();
m_menuEdit->AppendCheckItem(ID_DATETIME, "&DateTime\tF5", "DateTime");
|
cs |
이벤트 핸들러 연결
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 메뉴 Edit에 관련된 이벤트 핸들러
Bind(wxEVT_MENU, &MyFrame::OnUndo, this, wxID_UNDO);
Bind(wxEVT_MENU, &MyFrame::OnRedo, this, wxID_REDO);
Bind(wxEVT_MENU, &MyFrame::OnCut, this, wxID_CUT);
Bind(wxEVT_MENU, &MyFrame::OnCopy, this, wxID_COPY);
Bind(wxEVT_MENU, &MyFrame::OnPaste, this, wxID_PASTE);
Bind(wxEVT_MENU, &MyFrame::OnSelectAll, this, ID_DATETIME);
Bind(wxEVT_MENU, &MyFrame::OnInsertDateTime, this, ID_DATETIME);
// 메뉴바 갱신 이벤트 핸들러
Bind(wxEVT_UPDATE_UI, &MyFrame::OnUpdateUndo, this, wxID_UNDO);
Bind(wxEVT_UPDATE_UI, &MyFrame::OnUpdateRedo, this, wxID_REDO);
Bind(wxEVT_UPDATE_UI, &MyFrame::OnUpdateCut, this, wxID_CUT);
Bind(wxEVT_UPDATE_UI, &MyFrame::OnUpdateCopy, this, wxID_COPY);
Bind(wxEVT_UPDATE_UI, &MyFrame::OnUpdatePaste, this, wxID_PASTE);
|
cs |
이벤트 핸들러인 OnPaste와 OnUpdatePaste을 구현한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 붙여넣기 기능.
void MyFrame::OnPaste(wxCommandEvent& event) {
if (m_textControl->CanPaste()) {
m_textControl->Paste();
}
}
// 붙여넣기 기능 활성화.
void MyFrame::OnUpdatePaste(wxUpdateUIEvent& event)
{
event.Enable(m_textControl->CanPaste());
}
|
cs |
이렇게 하면, 마우스로 붙여넣기 메뉴를 사용해서 클립보드로 저장된걸 붙여넣을 수 있다.
'프로그래밍 > wxWidgets' 카테고리의 다른 글
[wxWidgets] Find 기능 커서 이동 및 선택하기. (0) | 2024.02.18 |
---|---|
[wxWidgets] 찾기(Find) 기능 구현하기. (0) | 2024.02.17 |
[wxWidgets] 복사(Copy) 메뉴 추가하기. (0) | 2024.02.16 |
[wxWidgets] 잘라내기 기능을 Edit 메뉴에 추가하기. (0) | 2024.02.16 |
[wxWidgets] 다시 실행(Redo) 기능 구현하기. (1) | 2024.02.15 |