샘플 프로젝트 중 'Sample02_ImageViewer'



#include <Windows.h>

#include <balor/graphics/all.hpp>

#include <balor/gui/all.hpp>


using namespace balor::graphics;

using namespace balor::gui;



int APIENTRY WinMain(HINSTANCE , HINSTANCE , LPSTR , int ) 

{

Frame frame(L"ImageViewer");

Bitmap bitmap;


typedef Menu::ItemInfo Item;

Item fileMenuItems[] = {

Item(L"열기(&O)\tCtrl+O", Key::Modifier::ctrl | Key::o),

Item(),

Item(L"종료(&X)\tAlt+F4", Key::Modifier::alt | Key::f4)

};

Item menuBarItems[] = {

Item(L"파일(&F)", fileMenuItems),

Item(L"도움말(&H)", [&] (Menu::Click& ) { MsgBox::show(L"Image Viewer Ver 1.0", L"버전 정보"); })

};

MenuBar menuBar(menuBarItems);

frame.menuBar(&menuBar);


frame.onShortcutKey() = [&] (Frame::ShortcutKey& e) {

switch (e.shortcut()) {

case Key::Modifier::ctrl | Key::o : {

OpenFileDialog dialog;

dialog.filter(L"그림 파일\n*.bmp;*.gif;*.png;*.jpg;*.jpeg;*.tiff\n\n");

if (dialog.show(frame)) {

bitmap = Bitmap(dialog.filePath());

if (bitmap != nullptr) {

frame.scrollMinSize(bitmap.size()); // 윈도우 사이즈가 그림 사이즈보다 작으면 스크롤 할 수 있도록 한다

frame.invalidate();

}

}

e.handled(true);

} break;

case Key::Modifier::alt | Key::f4 : {

frame.close();

e.handled(true);

} break;

}

};

frame.onPaint() = [&] (Frame::Paint& e) {

e.graphics().clear();

if (bitmap != nullptr) {

Graphics bitmapGraphics(bitmap);

e.graphics().copy(frame.scrollPosition(), bitmapGraphics); // 스크롤을 빼고 이미지를 복사한다.

}

};


frame.runMessageLoop();

return 0;

}




저작자 표시
신고
by 흥배 2014.09.01 08:00

Sample 프로젝트 중 Sample01_ButtonAndEvent


#include <Windows.h>

#include <balor/gui/all.hpp>


using namespace balor::gui;



int APIENTRY WinMain(HINSTANCE , HINSTANCE , LPSTR , int ) 

{

Frame frame(L"ButtonAndEvent");


// 버튼 생성

Button button0(frame, 10, 10, 100, 50, L"button0");

// 버튼 클릭 이벤트 설정

button0.onClick() = [&] (Button::Click& ) {

MsgBox::show(L"button0 clicked");

};

// 버튼 생성하면서 클릭이벤트도 설정

Button button1(frame, 10, 80, 100, 50, L"button1", [&] (Button::Click& ) {

MsgBox::show(L"button1 clicked");

});


frame.runMessageLoop();

return 0;

}







저작자 표시
신고
by 흥배 2014.08.29 08:00
| 1 |