📄 skinstatusbar.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> <Conmmand)
{
m_ltCommands.RemoveAll ();
m_ltCommands.AddTail (<Conmmand);
}
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 + -