2012년 5월 17일 목요일

wxWidgets튜토리얼 03-첫프로그램

1-단순한 창 띄우기
main.h
#include<wx/wx.h>

class MyApp: public wxApp
{
    public:
        virtual bool OnInit();
};

main.cpp
#include"main.h"
#include"CMainFrame.h"

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
    CMainFrame *MainFrame = new CMainFrame(wxT("My First Program"));
    MainFrame->Show(true);
    return true;
}

CMainFrame.h

#include<wx/wx.h>

class CMainFrame:public wxFrame
{
    public:
        CMainFrame(const wxString& title);
};

CMainFrame.cpp

#include"CMainFrame.h"

CMainFrame::CMainFrame(const wxString & title)
 : wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(640,480))
{
    Centre();
}
----------------------------------------------------설명---------------------------------------------------
MyApp 클래스
콘솔 프로그램이나 WinAPI의 GUI프로그램에서의 main이나 WinMain과 비슷한 역활을 한다.
프로그램이 시작할 때(OnInit메소드) 창을 생성하고(CMainFrame선언) 화면에 뜨게한다(MainFrame의 Show메소드)
IMPLEMENT_APP(MyApp)
MyApp클래스를 프로그램이 시작할 때 생성해 달라는 매크로, 이 매크로가 있어야만 MyApp클래스가 처음으로 생성되고, OnInit을 호출하여 창을 보여준다.
CMainFrame클래스에 대한 설명
CMainFrame은 wxFrame이라는 클래스을 상속받는다.

CMainFrame::CMainFrame(const wxString & title)
 : wxFrame(NULL,wxID_ANY,title,wxDefaultPosition,wxSize(640,480))
CMainFrame의 생성자가 실행될 때  상속된 wxFrame의 생성자도 같이 실행된다.
wxFrame의 생성자는 여러 인자를 같고 있는 데 창을 생성할 때 필요한 정보들이다.
이외에도 더 많은 인수가 있지만, 디폴드 인수가 있어서 신경을 쓰지 않아도 된다.
Centre()
창을 화면 중앙에 배치해주는 함수.

댓글 없음:

댓글 쓰기