bool CN3UIButton::Load(HANDLE hFile) { if (false == CN3UIBase::Load(hFile)) return false; DWORD dwNum; ReadFile(hFile, &m_rcClick, sizeof(m_rcClick), &dwNum, NULL); // click 영역 // m_ImageRef 설정하기 for(UIListItor itor = m_Children.begin(); m_Children.end() != itor; ++itor) { CN3UIBase* pChild = (*itor); if (UI_TYPE_IMAGE != pChild->UIType()) continue; // image만 골라내기 int iBtnState = (int)(pChild->GetReserved()); if (iBtnState<NUM_BTN_STATE) { m_ImageRef[iBtnState] = (CN3UIImage*)pChild; } } // 이전 uif파일을 컨버팅 하려면 사운드 로드 하는 부분 막기 int iSndFNLen = 0; ReadFile(hFile, &iSndFNLen, sizeof(iSndFNLen), &dwNum, NULL); // 사운드 파일 문자열 길이 if (iSndFNLen>0) { std::vector<char> buffer(iSndFNLen+1, NULL); ReadFile(hFile, &buffer[0], iSndFNLen, &dwNum, NULL); __ASSERT(NULL == m_pSnd_On, "memory leak"); m_pSnd_On = s_SndMgr.CreateObj(&buffer[0], SNDTYPE_2D); } ReadFile(hFile, &iSndFNLen, sizeof(iSndFNLen), &dwNum, NULL); // 사운드 파일 문자열 길이 if (iSndFNLen>0) { std::vector<char> buffer(iSndFNLen+1, NULL); ReadFile(hFile, &buffer[0], iSndFNLen, &dwNum, NULL); __ASSERT(NULL == m_pSnd_Click, "memory leak"); m_pSnd_Click = s_SndMgr.CreateObj(&buffer[0], SNDTYPE_2D); } return true; }
void CN3UIButton::operator = (const CN3UIButton& other) { CN3UIBase::operator = (other); m_rcClick = other.m_rcClick; // 클릭 영역 SetSndOn(other.GetSndFName_On()); // 사운드 SetSndClick(other.GetSndFName_Click()); // 사운드 // m_ImageRef 설정하기 for(UIListItor itor = m_Children.begin(); m_Children.end() != itor; ++itor) { CN3UIBase* pChild = (*itor); if (UI_TYPE_IMAGE != pChild->UIType()) continue; // image만 골라내기 int iBtnState = (int)(pChild->GetReserved()); if (iBtnState<NUM_BTN_STATE) { m_ImageRef[iBtnState] = (CN3UIImage*)pChild; } } }