본문 바로가기
C++ GUI

C++ GUI : wxWidgets(Icon표시하기)

by taekho 2026. 4. 14.

 

1. 이미지 파일 준비(파일명 : icon.png)

    - 프로젝트 폴더에 res란 이름의 하위 폴더를 만들고 이미지 파일을 위치 시킨다.

 

2.  리소스 파일 생성(프로젝트명.rc)

     1) 테스트 형식으로 만든다(프로젝트 폴더내에 만듬)

     2) logo_png RCDATA "res/icon.png" 입력한다.

파일명을 wxIcon.rc한 예

 

 

3. 프로젝트에 xxx.rc 파일을 추가한다.

 

4. Dialog-based Appliction에 icon표시 예제.

#include <wx/wx.h>
class MyApp : public wxApp
{
public:
    bool OnInit() override;
};

wxIMPLEMENT_APP(MyApp);

class MyDialog : public wxDialog
{
public:
	MyDialog();
};

bool MyApp::OnInit()
{
	wxInitAllImageHandlers();

	MyDialog* dialog = new MyDialog();

    dialog->ShowModal();
    dialog->Destroy();

    return false;
}

MyDialog::MyDialog() 
	: wxDialog(nullptr, wxID_ANY, "Dialog Application", wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE)
{
	wxBitmap bitmap("logo_png", wxBITMAP_TYPE_PNG_RESOURCE);
	
	if (bitmap.IsOk())
	{
		wxIcon icon;
		icon.CopyFromBitmap(bitmap);
		SetIcon(icon);
	}	
	//SetIcon(wxIcon(wxT("res/icon.png"), wxBITMAP_TYPE_PNG));
}

 

 

* 참고 

  - 리소스 파일를 만들지 않고 아이콘을 표시하는 방법도 있지만 이때는 icon파일이  실행 파일의 res하위 폴더에 있어야 한다.

 

  1) icon파일을 준비하고 실행파일의 res하위폴더에 위치 시킨다.

   2) 리소스에서 icon 새성 부분을 SetIcon(wxIcon(wxT("res/icon.png"), wxBITMAP_TYPE_PNG));

       변경하면 된다.