// SkinToolBar.cpp : implementation file // #include "stdafx.h" //#include "dialog.h" #include "SkinToolBar.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CSkinToolBar CSkinToolBar::CSkinToolBar() { m_bShow=TRUE; } CSkinToolBar::~CSkinToolBar() { #if 0 for (int i=0;iDestroyWindow(); delete pBtn; pBtn = NULL; } m_ptButton.RemoveAll(); #else ClearMemory(); #endif } void CSkinToolBar::ClearMemory() { int nCount = m_ptButton.GetCount(); if ( nCount == -1) return; for (int i=0;iDestroyWindow(); delete pBtn; } m_ptButton.RemoveAll(); } BEGIN_MESSAGE_MAP(CSkinToolBar, CSkinStatic) //{{AFX_MSG_MAP(CSkinToolBar) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CSkinToolBar message handlers BOOL CSkinToolBar::LoadTBImage(UINT uIDRes,COLORREF crBack) { CBitmap bmp; if (m_bmpToolBar.m_hObject) { bmp.LoadBitmap(uIDRes); m_bmpToolBar.SetBitmap((HBITMAP)bmp.m_hObject ); return TRUE; } else return m_bmpToolBar.LoadBitmap(uIDRes); } void CSkinToolBar::SetSizes( SIZE sizeButton, SIZE sizeImage ) { int nButtonCount=m_bmpToolBar.GetWidth()/sizeImage.cx ; m_rcButton.RemoveAll(); for (int j=0;jDestroyWindow(); delete pBtn; } m_ptButton.RemoveAll(); for (int i=0;iCreate("",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_NOTIFY,rcButton,this,nId); pBtn->SetBitmap((HBITMAP)bmpButton.m_hObject ); pBtn->SetStyle(STYLE_TOOLBAR); pBtn->SetTextColor(m_crText); m_rcButton.Add(rcButton); m_ptButton.AddTail(pBtn); } RecalcLayout(); } void CSkinToolBar::RecalcLayout() { CPaintDC dc(this); CSkinButton *pBtn; CRect rc(0,0,30,0); for (int i=0;iSetWindowPos(NULL, rcButton.left ,rcButton.top ,rcButton.Width() ,rcButton.Height() ,SWP_NOZORDER ); rc=rcButton; } } void CSkinToolBar::SetBasicCommands(CList <Conmmand) { m_ltCommands.RemoveAll (); m_ltCommands.AddTail (<Conmmand); }