dow(CCtrlView::m_hWnd)); 211 ASSERT(IsValidViewIndex(iIndex)); 212 213 if (iIndex==m_iActiveView) 214 return; 215 216// SetRedraw(FALSE); 217 if (-1!=m_iActiveView) 218 { 219 GetView(m_iActiveView)->ShowWindow(SW_HIDE); 220 } 221 GetTabCtrl().SetCurSel(iIndex); 222 m_iActiveView = iIndex; 223 GetView(m_iActiveView)->ShowWindow(SW_SHOWNORMAL); 224 225 UpdateLayout(); 226 227 //SetRedraw(TRUE); 228 //RedrawWindow(NULL, NULL, RDW_FRAME|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN); 229 230 if (GetFocus()!=this) 231 { 232 GetView(iIndex)->SetFocus(); 233 } 234} 235 236BOOL CTabView::SetViewTitle(const CWnd* pWnd,LPCTSTR pszTitle) 237{ 238 return SetViewTitle(GetIndex(pWnd),pszTitle); 239} 240 241BOOL CTabView::SetViewTitle(int iIndex,LPCTSTR pszTitle) 242{ 243 ASSERT(::IsWindow(CCtrlView::m_hWnd)); 244 ASSERT(IsValidViewIndex(iIndex)); 245 246 TC_EXTRA_ITEM ti; 247 ti.header.mask = TCIF_PARAM; 248 if (!GetTabCtrl().GetItem(iIndex,ti)) 249 return FALSE; 250 delete []ti.view.pszTitle; 251 252 CString str; 253 ShortenTitle(pszTitle,str); 254 255 ti.header.mask = TCIF_TEXT|TCIF_PARAM; 256 ti.header.pszText = (LPTSTR)(LPCTSTR)str; 257 if (pszTitle) 258 { 259 ti.view.pszTitle = new TCHAR[_tcslen(pszTitle)+1]; 260 if (NULL==ti.view.pszTitle) 261 return FALSE; 262 _tcscpy(ti.view.pszTitle,pszTitle); 263 } 264 if (!GetTabCtrl().SetItem(iIndex,ti)) 265 { 266 if (pszTitle) delete []ti.view.pszTitle; 267 return FALSE; 268 } 269 return TRUE; 270} 271 272BOOL CTabView::GetViewTitle(const CWnd* pWnd,LPTSTR& pszTitle) const 273{ 274 return GetViewTitle(GetIndex(pWnd),pszTitle); 275} 276 277BOOL CTabView::GetViewTitle(int iIndex,LPTSTR& pszTitle) const 278{ 279 ASSERT(IsValidViewIndex(iIndex)); 280 281 TC_EXTRA_ITEM ti; 282 ti.header.mask = TCIF_PARAM; 283 if (!GetTabCtrl().GetItem(iIndex,ti)) 284 return FALSE; 285 pszTitle = ti.view.pszTitle; 286 return TRUE; 287} 288 289BOOL CTabView::SetViewImage(const CWnd* pWnd,int iImage) 290{ 291 return SetViewImage(GetIndex(pWnd),iImage); 292} 293 294BOOL CTabView::SetViewImage(int iIndex,int iImage) 295{ 296 ASSERT(IsValidViewIndex(iIndex)); 297 298 TC_EXTRA_ITEM ti; 299 ti.header.mask = TCIF_IMAGE; 300 ti.header.iImage = iImage; 301 return GetTabCtrl().SetItem(iIndex,ti); 302} 303 304BOOL CTabView::GetViewImage(const CWnd* pWnd,int& iImage) const 305{ 306 return GetViewImage(GetIndex(pWnd),iImage); 307} 308 309BOOL CTabView::GetViewImage(int iIndex,int& iImage) const 310{ 311 ASSERT(IsValidViewIndex(iIndex)); 312 313 TC_EXTRA_ITEM ti; 314 ti.header.mask = TCIF_IMAGE; 315 if (!GetTabCtrl().GetItem(iIndex,ti)) 316 return FALSE; 317 iImage = ti.header.iImage; 318 return TRUE; 319} 320 321BOOL CTabView::SetViewData(const CWnd* pWnd,LPVOID pData) 322{ 323 return SetViewData(GetIndex(pWnd),pData); 324} 325 326BOOL CTabView::SetViewData(int iIndex,LPVOID pData) 327{ 328 ASSERT(IsValidViewIndex(iIndex)); 329 330 TC_EXTRA_ITEM ti; 331 ti.header.mask = TCIF_PARAM; 332 if (!GetTabCtrl().GetItem(iIndex,ti)) 333 return FALSE; 334 ti.header.mask = TCIF_PARAM |