게임라이브러리와 mfc와 연결하기
자주 받는 질문중에 하나가 'XXX하고 mfc와연결어케해요?' '.....연결되나요?'
이런질문을 자주받게됩니다.
그런데 질문하시는분들중에 너무 어렵게만 생각하고 아애 시도조차안하시는분들아 많은거같아서...
저도 잘모르지만 몇자적어봅니다.
제개인적인생각이지만 mfc와 연결안되는건없습니다. 그냥 번거롭고 덩치도커지고하니깐 귀찬아서 안쓰는거지요, mfc걍 라이브러리들중에하니일뿐입니다. CRect도 mfc이죠^^?
일단먼저 윈도우 프로그램에선 핸들과(HWND), 인스턴스핸들값( HINSTANCE) 을 어떻게 가지고놀것인가만 생각하시면됩니다.
일단 그래픽쪽라이브러리만따지자면 다이랙트엑스를포함해서 대부분의 라이브러리들은 초기화할때 HWND값을요구합니다.(윈도우에서만 돌아가는 라이브러일경우...)
바로이때!! ...
CWnd의 멤버 변수인 m_hWnd를 넣어주면됩니다.
대부분 여러분들은 CWnd 를 상속받은 CFrameWnd에서작업을할겁니다.
그리고만약 지금작업하는곳이 CWnd 를 상속받은 클래스가 아닐경우에는..
AfxGetApp()->GetMainWnd()->m_hWnd;
를해서 강제로 받아오면됩니다.
그리고 예를들어 창의 특정프레임에다가 작업을하고싶을경우...
CWnd *pitem = GetDlgItem(IDC_STATIC_DISP);
m_Mydx.InitMyDx9(pitem->m_hWnd);
이런식으로 리소스핸들(IDC_STATIC_DISP)에서 다시 hwnd를얻어오는방법이있습니다.
ps.
만약 핸들 요구하지않는다면 자체적으로 윈도우핸들을만들어쓰는거지요.
mfc로만들면 기본적으로 자체적으로 핸들을 만들어줍니다. 이걸받아서 초기화할때 핸들값에다가 넣어주면 mfc로만든 프로그램내에서 제어를할수있습니다.
그렇지 않을경우 따로따로 돌겠죠?
이것을해결하는방법은 여러가지가 있겠지만 일단 연동하려는 그라이브러리쪽에서 hwnd를 구할수만있다면 되는겁니다.
이것은 말그대로 '그때~그때~달~~라~~요~~' 겠네요^^;
'GamePrograming' 카테고리의 다른 글
X File Exporter 여러가지... (0) | 2007.04.19 |
---|---|
Virtools User Guide 요약한것. (0) | 2007.04.19 |
게임제작에쓰이는용어들좀알려주세요 (0) | 2007.03.12 |