⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skinstatusbar.cpp

📁 If you are not using these features and wish to reduce the size
💻 CPP
字号:
// SkinStatusBar.cpp : implementation file
//

#include "stdafx.h"
#include "dialog.h"
#include "SkinStatusBar.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSkinStatusBar

CSkinStatusBar::CSkinStatusBar()
{
}

CSkinStatusBar::~CSkinStatusBar()
{
}


BEGIN_MESSAGE_MAP(CSkinStatusBar, CSkinStatic)
	//{{AFX_MSG_MAP(CSkinStatusBar)
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSkinStatusBar message handlers
BOOL CSkinStatusBar::LoadBKImage(LPCTSTR szImagePath)
{
	return m_bmpBK.LoadImage(szImagePath); 
}

BOOL CSkinStatusBar::LoadSBImage(LPCTSTR szImagePath)
{
	m_bmpStatusBar.LoadImage(szImagePath);
	for (int j=0;j<m_ptButton.GetCount();j++ )
	{
		CRect rcButton;
		CSkinButton *pBtn=(CSkinButton *)m_ptButton.GetAt(m_ptButton.FindIndex(j));
		pBtn->DestroyWindow(); 
		delete pBtn;
	}
	m_ptButton.RemoveAll(); 
	CRect rcClient;
	GetClientRect(&rcClient);
	int cx=rcClient.Width(); 
	for (int i=0;i<3;i++)
	{
		CRect rcButton;
		rcButton.right =rcClient.right+21*(3-i);
		rcButton.left =rcButton.right-21 ;
		rcButton.top=0;
		rcButton.bottom =30;
		CEnBitmap bmpButton;
		m_bmpStatusBar.DrawImage(bmpButton,1,i+1,1,3); 

		UINT nId=m_ltCommands.GetAt(m_ltCommands.FindIndex(i)); 
		CSkinButton *pBtn=new CSkinButton();
		pBtn->Create("",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,rcButton,this,nId); 
		pBtn->SetBitmap((HBITMAP)bmpButton.m_hObject ); 
		m_ptButton.AddTail(pBtn); 
	}

	for (i=0;i<m_ptButton.GetCount();i++ )
	{
		CRect rcButton;
		CSkinButton *pBtn=(CSkinButton *)m_ptButton.GetAt(m_ptButton.FindIndex(i));
		pBtn->SetWindowPos(NULL, cx-(4-i)*21 ,3,21 ,20  ,SWP_NOZORDER ); 
	}
	return TRUE;
}

void CSkinStatusBar::SetBasicCommands(CList<UINT,UINT> &ltConmmand)
{
	m_ltCommands.RemoveAll ();
	m_ltCommands.AddTail (&ltConmmand);
}


void CSkinStatusBar::OnSize(UINT nType, int cx, int cy) 
{
	CStatic::OnSize(nType, cx, cy);
	
	for (int i=0;i<m_ptButton.GetCount();i++ )
	{
		CRect rcButton;
		CSkinButton *pBtn=(CSkinButton *)m_ptButton.GetAt(m_ptButton.FindIndex(i));
		pBtn->SetWindowPos(NULL, cx-(4-i)*21 ,3,21 ,20  ,SWP_NOZORDER ); 
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -