// SkinTabCtrl.cpp : implementation file // #include "stdafx.h" //#include "dialog.h" #include "SkinTabCtrl.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSkinTabCtrl CSkinTabCtrl::CSkinTabCtrl() { m_tabCurrent=0; } CSkinTabCtrl::~CSkinTabCtrl() { for (int i=0;iGetHeight(), pBmpTabActive->GetWidth(),(m_tabCurrent+1)*pBmpTabActive->GetHeight()); pBmpTabActive->StretchDraw(&dc,&rc,pBmpTabActive->GetRect() ); } void CSkinTabCtrl::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CRect rc = m_bmpTabBk.GetRect(); if ( point.y<44*4) { m_tabCurrent=point.y/(m_bmpTabBk.GetHeight()/4 ); ::SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCUR )); Invalidate(); UpdateWindow(); } CStatic::OnLButtonDown(nFlags, point); } void CSkinTabCtrl::AddTab(LPCTSTR szImagePath) { CEnBitmap *pBmp=new CEnBitmap(); pBmp->LoadImage(szImagePath); m_ImageArray.Add(pBmp); } void CSkinTabCtrl::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if (point.y<44*4) ::SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCUR )); CStatic::OnMouseMove(nFlags, point); } void CSkinTabCtrl::OnLButtonUp(UINT nFlags, CPoint point) { if (point.y<44*4) ::SetCursor(AfxGetApp()->LoadCursor(IDC_HANDCUR )); CStatic::OnLButtonUp(nFlags, point); } // 这个函数暂时不用,这个removeall也是没有删除内存的。 void CSkinTabCtrl::Clear() { // for (int i=0;iDestroyWindow(); // delete pBmp; // pBmp = NULL; // } m_ImageArray.RemoveAll(); }