±âº»ÀûÀÎ ´ëÈ »óÀÚ°¡ Æ÷ÇÔ µÇ¾î ÀÖ¾ùÁö¸¸ »ç¿ëÇÏÁö ¾Ê¾Ò´Ù. À̹ø Àå¿¡¼ ´ëÈ »óÀÚ¿¡ ¹öÆ°À» Ãß°¡ÇÏ¿© "Export" ¹öÆ°À» ´©¸£¸é ÀͽºÆ÷Æ® Çϵµ·Ï Çغ»´Ù.
´ëÈ »óÀÚ¸¦ Ãß°¡ÇϱâÀü¿¡ INode À̸§À» XML·Î ÀúÀåÇÒ ¶§ ¹ö±×¸¦ ¼öÁ¤ÇÏ°í ³Ñ¾î°¡ÀÚ. Element NameÀ» ÀûÀ» ¶§ ¶ç¿ö¾²±â¸¦ ÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ±ôºýÇØ ¹ö·È´Ù.
¿¹¸¦ µé¸é ±âÁ¸ ¹®Á¦°¡ ÀÖ´ø XMLÀº ´ÙÀ½°ú °°´Ù.
<?xml version="1.0" encoding="euc-kr" ?> <Scene Root> <Bip01> <Bip01 Footsteps /> </Bip01> </Scene Root>
"Scene Root"¿Í °°ÀÌ ¿¤¸®¸ÕÆ® À̸§À» ¶ç¿ö¾²±â Çϸé XML¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ±×·¡¼ ¿¤¸®¸ÕÆ® À̸§Àº "Node"·Î ÇÏ°í ¼Ó¼ºÀº "name", ¼Ó¼º °ªÀº INodeÀÇ À̸§À¸·Î »ç¿ëÇϴ°ɷΠ¼öÁ¤ ÇÏ¿´´Ù.
<?xml version="1.0" encoding="euc-kr" ?> <Node name="Scene Root"> <Node name="Bip01"> <Node name="Bip01 Footsteps" /> </Node> </Node>
Export::CollectINode() ¹Ù²ï Çü½Ä¿¡ ¸Âµµ·Ï ¼öÁ¤ÇÏ¿³´Ù.
void Export::CollectINode( INode* pNode, XmlNode* pParentXML )
{
if(!pNode)
return;
XmlNode* pXmlNode = CreateXmlNode( "Node" );
pXmlNode->AddAttribute( "name", pNode->GetName() );
if( m_pXmlRoot == NULL )
pParentXML = m_pXmlRoot = pXmlNode;
else
pParentXML->AttachChild( pXmlNode );
int iChild = pNode->NumberOfChildren();
for(int i=0; i<iChild; ++i)
{
INode* pChild = pNode->GetChildNode(i);
if(pChild)
CollectINode(pChild, pXmlNode );
}
}
|
´ëÈ »óÀÚ¿¡ ¹öÆ°À» Ãß°¡ÇÏ´Â°Ç ¾ÆÁÖ ½±´Ù. ºñÁê¾ó ½ºÆ©µð¿À¿¡¼ ¸®¼Ò½º ¿¡µðÅ͸¦ ¿¾î ¹öÆ°À» Ãß°¡ÇÏ¸é µÈ´Ù.
maxProjectOptionsDlgProc¿¡ ´ëÈ »óÀÚ¸¦ ¸¸µé¶§, lParam·Î Export °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ³Ñ°ÜÁØ´Ù.
IDC_EXPORT ¹öÆ°À» ´©¸£¸é, Export::SetExport()¸¦ ¼ÂÆÃÇÑÈÄ ´ëÈ »óÀÚ¸¦ ´Ý°í Export ÇÑ´Ù.
INT_PTR CALLBACK maxProjectOptionsDlgProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
static Export *imp = NULL;
WPARAM wlParam = LOWORD(wParam);
WPARAM whParam = HIWORD(wParam);
switch(message)
{
case WM_INITDIALOG:
imp = (Export *)lParam;
CenterWindow(hWnd,GetParent(hWnd));
return TRUE;
case WM_CLOSE:
EndDialog(hWnd, 0);
return 1;
case WM_COMMAND:
{
if( imp && IDC_EXPORT == wlParam)
{
imp->SetExport( true );
SendMessage(hWnd, WM_CLOSE, 0, 0);
}
}
return 1;
}
return 0;
}
|
ML Æ÷¸ËÀ¸·Î ³ëµå¸¦ ÀúÀåÇØ º¸ÀÚ. TinyXML ¶óÀ̺귯¸® ÀÌ¿Ü¿¡ XmlNode.h, XmlNode.cpp, StringUtil.h, StringUtil.cpp¸¦ Ãß°¡ÇÑ´Ù. XmlNode¸¦ ÀÌ¿ëÇؼ XMLÀ» ÀúÀåÇÑ´Ù.
¼Ò½º: maxProject_dlg.zip
|