1. 새창으로 띄우기

void CHyperLink::OnClicked()
{
CoInitialize(NULL);

static IWebBrowser2 *pWebBrowser = NULL; // IWebBrowser2 인터페이스를 사용

if(pWebBrowser != NULL) // pWebBrowser 초기화
{
pWebBrowser->Quit();
pWebBrowser->Release();
pWebBrowser = NULL;
}

CString strHeader, strTarget, strUrl;
strHeader = "Content-Type: application/x-www-form-urlencoded\r\n";
strTarget = "_top"; // 새로운 창으로 띄움
strUrl = m_strURL; // 인터넷 주소

VARIANT vtHeader, vtTarget, vtEmpty;
vtHeader.vt = VT_BSTR;
vtHeader.bstrVal = strHeader.AllocSysString();
vtTarget.vt = VT_BSTR;
vtTarget.bstrVal = strTarget.AllocSysString();

::VariantInit(&vtEmpty); // Variant 초기화
::CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (void**)&pWebBrowser);

int nCX = GetSystemMetrics(SM_CXSCREEN)+300;
int nCY = GetSystemMetrics(SM_CYSCREEN)-150;

pWebBrowser->put_Top((nCY - m_iSizeHeight)/2); // 창을 가운데 정렬
pWebBrowser->put_Left((nCX - m_iSizeWidth)/2);
pWebBrowser->put_Height(m_iSizeHeight); // 창의 크기
pWebBrowser->put_Width(m_iSizeWidth);
pWebBrowser->put_Resizable(VARIANT_FALSE); // 각 설정
pWebBrowser->put_ToolBar(VARIANT_FALSE);
pWebBrowser->put_StatusBar(VARIANT_FALSE);
pWebBrowser->put_AddressBar(VARIANT_FALSE);
pWebBrowser->put_MenuBar(VARIANT_FALSE);
pWebBrowser->put_Visible(VARIANT_TRUE);

HRESULT result;

result = pWebBrowser->Navigate(strUrl.AllocSysString(), &vtEmpty, &vtTarget, &vtEmpty, &vtHeader);

CoUninitialize();

if( SUCCEEDED(result) )
SetVisited(); // 제대로 갔다면 링크를 방문한 색깔로 바꿈
else { // 오류시 메시지
CString msg="HyperLink Error";

if(result==E_INVALIDARG) msg+=": Invalid Parameters.";
else if(result==E_OUTOFMEMORY) msg+=": Out of memory.";

MessageBeep(MB_ICONEXCLAMATION); // Unable to follow link
AfxMessageBox(msg, MB_ICONEXCLAMATION | MB_OK);
}
}

출처 : 데브피아 슈퍼사이야인(walter_an)님의 글

2. 기존 다이알로그에 붙이기

AfxEnableControlContainer(); // 초기화

CWnd wndBrowser;
CComQIPtr spBrowser;

CString strUrl = "http://www.AJJIYA.com";

wndBrowser.CreateControl( CLSID_WebBrowser, NULL , WS_VISIBLE | WS_CHILD, CRect(0,0,800,600), this , NULL );
spBrowser = wndBrowser.GetControlUnknown();
spBrowser->Navigate( strUrl.AllocSysString() , NULL , NULL , NULL , NULL );
AND

게임엔진 G-Blender Version 1.6 기술 세미나


일시 : 2005년 6월 24일 금요일 (14:00 ~ 17:00)
장소 : 코엑스 3층 conference room 11호 B
목적 : 게임 엔진 G-Blender version 1.6 설명과 고객과의 피드백
내용 : G-Blender 엔진에서 게임 개발 테크닉과 그에 대한 따른 작업 과정에 대한 설명을 엔진 샘플 소스를 통해 직접 설명

1. Clone : 오브젝트 복제, 공유 그리고 메모리 자원의 최소화

클론을 통해 엔진의 Node, Geometry, Mesh, Material, Texture 등 오브젝트를 복제하고 복제 시 메모리 공유 여부와 메모리 최적화

2. Animation : 다양한 애니메이션과 쉬운 애니메이션 조작

Mesh Animation, Skin Animation, Facial Morph 등 다양한 애니메이션 구현 및 Motion Blend, Motion Add 등 애니메이션 조작 방법

3. Effect : FX Composer와의 연동에 의한 Effect Shader 실행

Bloom, Bump, LightMap 등 다양한 Shader구현 및 Shadow Volume구현

점점 발전하는 가이블이군요 ^^;; 가서 구경해보고 싶내요 ^^;;;

가이블 홈페이지
AND