From: <td...@us...> - 2003-11-18 05:41:41
|
Update of /cvsroot/anyedit/AnyEditv2 In directory sc8-pr-cvs1:/tmp/cvs-serv3147 Modified Files: MDITabs.cpp MDITabs.h Added Files: LBSpinButtonCtrl.cpp LBSpinButtonCtrl.h Log Message: Almost OfficeXP style MDI tab implementation --- NEW FILE: LBSpinButtonCtrl.cpp --- (This appears to be a binary file; contents omitted.) --- NEW FILE: LBSpinButtonCtrl.h --- (This appears to be a binary file; contents omitted.) Index: MDITabs.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/MDITabs.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** MDITabs.cpp 31 Jul 2003 12:25:32 -0000 1.10 --- MDITabs.cpp 18 Nov 2003 05:41:37 -0000 1.11 *************** *** 65,74 **** BEGIN_MESSAGE_MAP(CMDITabs, CTabCtrl) ! //{{AFX_MSG_MAP(CMDITabs) ! ON_NOTIFY_REFLECT(TCN_SELCHANGE, OnSelChange) ! ON_WM_PAINT() ! ON_WM_NCPAINT() ! ON_WM_CONTEXTMENU() ! ON_WM_LBUTTONDBLCLK() //}}AFX_MSG_MAP ON_MESSAGE(WM_SIZEPARENT, OnSizeParent) --- 65,75 ---- BEGIN_MESSAGE_MAP(CMDITabs, CTabCtrl) ! //{{AFX_MSG_MAP(CMDITabs) ! ON_NOTIFY_REFLECT(TCN_SELCHANGE, OnSelChange) ! ON_WM_PAINT() ! ON_WM_NCPAINT() ! ON_WM_CONTEXTMENU() ! ON_WM_LBUTTONDBLCLK() ! ON_WM_ERASEBKGND() //}}AFX_MSG_MAP ON_MESSAGE(WM_SIZEPARENT, OnSizeParent) *************** *** 107,111 **** --- 108,176 ---- } ShowWindow(SW_NORMAL); + + if(!gotmspin) + { + CTabCtrl::LockWindowUpdate(); + CTabCtrl::InsertItem(0,"DEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEEDEEEEEEEEEEE"); + + CWnd* pWnd = GetWindow(GW_CHILD); + while(pWnd) + { + char buf[]="msctls_updown32"; + int nRet=::GetClassName(pWnd->m_hWnd,buf,sizeof(buf)/sizeof (buf[0])); + if(nRet && strcmp(buf,"msctls_updown32")) + { + pWnd = pWnd->GetWindow(GW_HWNDNEXT); + } + else + { + CRect m_rectUpDn; + //The msctls_updown32 control is found. + // + pWnd->GetWindowRect(&m_rectUpDn); + ScreenToClient(&m_rectUpDn); + //Update size and position of msctls_updown32 control + //m_rectUpDn.DeflateRect(50,50); + //m_rectUpDn.bottom = rectCli.bottom; + //m_rectUpDn.left +=5; + // m_rectUpDn.right+=2; + //m_rectUpDn.OffsetRect(3,5); + CRect rectCli; + GetClientRect(&rectCli); + + m_rectUpDn.top = rectCli.bottom-25; + m_rectUpDn.bottom = rectCli.bottom-2; + m_rectUpDn.left = rectCli.right - 35; + m_rectUpDn.right = rectCli.right-10; + + pWnd->MoveWindow(&m_rectUpDn); + m_Spin.SubclassWindow(pWnd->m_hWnd); + gotmspin=TRUE; + pWnd=0; + m_Spin.ShowWindow(SW_NORMAL); + } + } + CTabCtrl::DeleteAllItems(); + CTabCtrl::UnlockWindowUpdate(); + } + else + { + CRect rectCli; + GetClientRect(&rectCli); + + CRect m_rectUpDn; + m_rectUpDn.top = rectCli.bottom-25; + m_rectUpDn.bottom = rectCli.bottom-2; + m_rectUpDn.left = rectCli.right - 35; + m_rectUpDn.right = rectCli.right-10; + if(m_Spin) + { + m_Spin.MoveWindow(m_rectUpDn); + m_Spin.ShowWindow(SW_NORMAL); + } + } + } + return 0; } *************** *** 294,297 **** --- 359,402 ---- dc.SelectObject (pOldPen); + + /*CWnd* pWnd = GetWindow(GW_CHILD); + while(pWnd) + { + char buf[]="msctls_updown32"; + int nRet=::GetClassName(pWnd->m_hWnd,buf,sizeof(buf)/sizeof (buf[0])); + if(nRet && strcmp(buf,"msctls_updown32")) + { + pWnd = pWnd->GetWindow(GW_HWNDNEXT); + } + else + { + CRect m_rectUpDn; + //The msctls_updown32 control is found. + // + pWnd->GetWindowRect(&m_rectUpDn); + ScreenToClient(&m_rectUpDn); + //Update size and position of msctls_updown32 control + //m_rectUpDn.DeflateRect(50,50); + m_rectUpDn.top = rectCli.bottom-25; + m_rectUpDn.bottom = rectCli.bottom-1; + //m_rectUpDn.left +=5; + // m_rectUpDn.right+=2; + //m_rectUpDn.OffsetRect(3,5); + pWnd->MoveWindow(&m_rectUpDn); + pWnd=0; + } + }*/ + + if(gotmspin && m_Spin) + { + m_Spin.ShowWindow(SW_NORMAL); + CRect m_rectUpDn; + m_rectUpDn.top = rectCli.bottom-25; + m_rectUpDn.bottom = rectCli.bottom-2; + m_rectUpDn.left = rectCli.right - 25; + m_rectUpDn.right = rectCli.right-1; + m_Spin.MoveWindow(m_rectUpDn); + } + } *************** *** 328,331 **** --- 433,450 ---- ::DeleteObject(pen); ::ReleaseDC(m_hWnd, hdc); + + if(gotmspin && m_Spin) + { + CRect rectCli; + GetClientRect(&rectCli); + + CRect m_rectUpDn; + m_rectUpDn.top = rectCli.bottom-25; + m_rectUpDn.bottom = rectCli.bottom-2; + m_rectUpDn.left = rectCli.right - 35; + m_rectUpDn.right = rectCli.right-10; + m_Spin.MoveWindow(m_rectUpDn); + m_Spin.ShowWindow(SW_NORMAL); + } } *************** *** 469,473 **** metrics.lfStatusFont.lfWeight = FW_BOLD; m_fontbold.CreateFontIndirect(&metrics.lfStatusFont); - } --- 588,595 ---- metrics.lfStatusFont.lfWeight = FW_BOLD; m_fontbold.CreateFontIndirect(&metrics.lfStatusFont); } + BOOL CMDITabs::OnEraseBkgnd(CDC* pDC) + { + return TRUE; + } Index: MDITabs.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/MDITabs.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** MDITabs.h 31 Jul 2003 12:25:32 -0000 1.4 --- MDITabs.h 18 Nov 2003 05:41:37 -0000 1.5 *************** *** 11,15 **** #ifndef __MDITABS_H #define __MDITABS_H ! /****************************************************************************\ --- 11,15 ---- #ifndef __MDITABS_H #define __MDITABS_H ! #include "LBSpinButtonCtrl.h" /****************************************************************************\ *************** *** 64,68 **** CBrush m_hbrBackground; COLORREF m_clrBackground; ! CImageList m_NumberOverlays; int m_MenuTab; // item on which we opened context menu --- 64,69 ---- CBrush m_hbrBackground; COLORREF m_clrBackground; ! CLBSpinButtonCtrl m_Spin; ! BOOL gotmspin; CImageList m_NumberOverlays; int m_MenuTab; // item on which we opened context menu *************** *** 98,101 **** --- 99,103 ---- afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); + afx_msg BOOL OnEraseBkgnd(CDC* pDC); //}}AFX_MSG afx_msg LRESULT OnSizeParent(WPARAM, LPARAM lParam); |