[c++] wxWidgets에서의 이벤트 처리
wxWidgets는 C++로 작성된 크로스 플랫폼 GUI 라이브러리로, 다양한 이벤트들을 처리할 수 있는 강력한 기능을 제공합니다.
이벤트 핸들러 함수 만들기
이벤트 핸들러 함수는 특정 이벤트가 발생했을 때 호출되는 함수입니다. 예를 들어, 버튼을 클릭하거나 메뉴를 선택할 때 실행되는 코드를 포함할 수 있습니다.
다음은 wxButton
클래스에서 클릭 이벤트를 처리하는 예제 코드입니다:
EVT_BUTTON(id, function)
위 코드에서 id
는 버튼의 ID이고, function
은 이벤트가 발생했을 때 호출될 함수명입니다.
이벤트 테이블에 핸들러 함수 추가하기
이벤트 테이블은 이벤트와 핸들러 함수를 연결하는데 사용됩니다. 이벤트 테이블에 핸들러 함수를 추가하여 특정 이벤트가 발생했을 때 어떤 함수를 실행할지를 지정할 수 있습니다.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(id, MyFrame::OnButtonClick)
END_EVENT_TABLE()
위 코드에서 MyFrame
은 이벤트를 처리할 클래스이고, OnButtonClick
은 클릭 이벤트를 처리할 함수입니다.
이벤트 처리 예제
#include <wx/wx.h>
class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(300, 200))
{
wxButton *btn = new wxButton(this, wxID_ANY, wxT("Click me"), wxPoint(10, 10), wxSize(150, 50));
Connect(btn->GetId(), wxEVT_BUTTON, wxCommandEventHandler(MyFrame::OnButtonClick));
}
void OnButtonClick(wxCommandEvent& event)
{
wxMessageBox(wxT("Button clicked!"));
}
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_BUTTON(wxID_ANY, MyFrame::OnButtonClick)
END_EVENT_TABLE()
위의 코드는 MyFrame
클래스에서 버튼을 클릭했을 때 메시지 상자를 표시하는 간단한 예제입니다.
wxWidgets에서의 이벤트 처리는 위와 같은 방식으로 수행됩니다. 이제 여러분은 이벤트 처리를 사용하여 wxWidgets 애플리케이션을 더욱 동적으로 만들 수 있을 것입니다.