114 lines
2.4 KiB
C++
114 lines
2.4 KiB
C++
// TitlebarCtrl.cpp: implementation of the CTitlebarCtrl class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "hmlistview.h"
|
|
#include "TitlebarCtrl.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
IMPLEMENT_DYNCREATE(CTitlebarCtrl, CReBarCtrl)
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Message map
|
|
|
|
BEGIN_MESSAGE_MAP(CTitlebarCtrl, CReBarCtrl)
|
|
//{{AFX_MSG_MAP(CTitlebarCtrl)
|
|
ON_WM_CREATE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CTitlebarCtrl::CTitlebarCtrl()
|
|
{
|
|
|
|
}
|
|
|
|
CTitlebarCtrl::~CTitlebarCtrl()
|
|
{
|
|
|
|
}
|
|
|
|
int CTitlebarCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
{
|
|
if (CReBarCtrl::OnCreate(lpCreateStruct) == -1)
|
|
return -1;
|
|
|
|
REBARINFO rbi;
|
|
ZeroMemory(&rbi,sizeof(REBARINFO));
|
|
rbi.cbSize = sizeof(REBARINFO);
|
|
SetBarInfo(&rbi);
|
|
|
|
CreateTitleBand();
|
|
|
|
ShowWindow(SW_SHOW);
|
|
UpdateWindow();
|
|
|
|
return 0;
|
|
}
|
|
|
|
// Title Band
|
|
|
|
CString CTitlebarCtrl::GetTitleText()
|
|
{
|
|
CString sText;
|
|
REBARBANDINFO rbbi;
|
|
ZeroMemory(&rbbi,sizeof(rbbi));
|
|
rbbi.cbSize = sizeof(REBARBANDINFO);
|
|
rbbi.fMask = RBBIM_TEXT;
|
|
rbbi.lpText = sText.GetBuffer(255);
|
|
rbbi.cch = 255;
|
|
|
|
GetBandInfo(0,&rbbi);
|
|
|
|
sText.ReleaseBuffer();
|
|
|
|
return sText;
|
|
}
|
|
|
|
void CTitlebarCtrl::SetTitleText(const CString& sTitle)
|
|
{
|
|
CClientDC dc(this);
|
|
CSize size = dc.GetTextExtent(sTitle);
|
|
|
|
REBARBANDINFO rbbi;
|
|
ZeroMemory(&rbbi,sizeof(rbbi));
|
|
rbbi.cbSize = sizeof(REBARBANDINFO);
|
|
rbbi.fMask = RBBIM_TEXT | RBBIM_SIZE;
|
|
rbbi.lpText = (LPTSTR)(LPCTSTR)sTitle;
|
|
rbbi.cx = size.cx + 100;
|
|
|
|
SetBandInfo(0,&rbbi);
|
|
|
|
}
|
|
|
|
inline int CTitlebarCtrl::CreateTitleBand()
|
|
{
|
|
CString sText;
|
|
sText.LoadString(IDS_STRING_TITLE);
|
|
CClientDC dc(this);
|
|
CSize size = dc.GetTextExtent(sText);
|
|
|
|
REBARBANDINFO rbbi;
|
|
ZeroMemory(&rbbi,sizeof(rbbi));
|
|
rbbi.cbSize = sizeof(REBARBANDINFO);
|
|
rbbi.fMask = RBBIM_TEXT | RBBIM_STYLE | RBBIM_COLORS | RBBIM_SIZE;
|
|
rbbi.lpText = (LPTSTR)(LPCTSTR)sText;
|
|
rbbi.fStyle = RBBS_NOGRIPPER;
|
|
rbbi.clrFore = GetSysColor(COLOR_HIGHLIGHTTEXT);
|
|
rbbi.clrBack = GetSysColor(COLOR_INACTIVECAPTION);
|
|
rbbi.cx = size.cx + 100;
|
|
|
|
return InsertBand(-1,&rbbi);
|
|
}
|
|
|