// ItemTree.cpp : 实现文件 // #include "stdafx.h" #include "../Resource.h" #include "ItemTab.h" // CItemTree IMPLEMENT_DYNAMIC(CItemTab, CTabCtrl) CItemTab::CItemTab() { m_count = 0; } CItemTab::~CItemTab() { } void CItemTab::__translate(TAB_INDEX _index,CString& Data) { switch(_index) { case TAB_AGENT: Data = _T("座席状态"); break; case TAB_CALL: Data = _T("呼叫状态"); break; default: Data = _T("error"); break; } } void CItemTab::addItem(CDialog* _wnd, int _idd) { CString _data = _T(""); __translate((TAB_INDEX)m_count, _data); InsertItem(m_count, _data); if(_wnd->m_hWnd != INVALID_HANDLE_VALUE) _wnd->Create(_idd, this); m_itemList[m_count] = _wnd; //设置页面的位置在m_tab控件范围内 CRect rs; GetClientRect(rs); rs.top += 22; rs.bottom -= 4; rs.left += 8; rs.right -= 4; _wnd->SetWindowPos(this, 0, 0, rs.Width(), rs.Height(), SWP_HIDEWINDOW); _wnd->MoveWindow(rs); if(m_count == 0) { _wnd->ShowWindow(TRUE); SetCurSel(0); } m_count++; } BEGIN_MESSAGE_MAP(CItemTab, CTabCtrl) ON_NOTIFY_REFLECT(TCN_SELCHANGE, &CItemTab::OnTcnSelchange) END_MESSAGE_MAP() // CItemTree 消息处理程序 void CItemTab::OnTcnSelchange(NMHDR *pNMHDR, LRESULT *pResult) { // TODO: 在此添加控件通知处理程序代码 std::map::iterator _iter; int _curSel = GetCurSel(); for (_iter = m_itemList.begin();_iter != m_itemList.end(); _iter++) { if (_iter-> first == _curSel) { _iter->second->ShowWindow(SW_SHOW); } else { _iter->second->ShowWindow(SW_HIDE); } } *pResult = 0; }