|
//------------------------------------------------------------------------------
// $Workfile: CtrlUtils.h $
// $Header: $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: $
//
//-----------------------------------------------------------------------------
#pragma once
/// Helper macro for accessing the index of the TVITEMEX state image
#define STATEIMAGEMASKTOINDEX(i) ((i) >> 12)
/// Helper macro for accessing the index of the TVITEMEX overlay image
#define OVERLAYMASKTOINDEX(i) ((i) >> 8)
namespace SbjCore
{
namespace Utils
{
namespace Ctrl
{
struct AFX_EXT_CLASS TVItem : public TVITEMEX
{
TVItem();
void SetMask(const UINT nMask);
void SetItemText(LPCTSTR lpszItemText);
void SetImage(const long nImage);
void SetSelectedImage(const long nImage);
void SetHandle(const HTREEITEM hti);
void SetState(const UINT nState, const UINT nStateMask);
void SetOverlayIndex(const UINT nIndex);
void SetStateImageIndex(const UINT nIndex);
void SetChildren(const int nChildren);
void SetParam(const LPARAM l);
/// returns the wrapped TVITEMEX struct
operator TVITEMEX&();
/// assignment operator
const TVItem& operator=(const TVItem& other);
};
const int LVCF_ALL = LVCF_FMT | LVCF_IMAGE | LVCF_ORDER | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
struct AFX_EXT_CLASS LVColumn : public LVCOLUMN
{
LVColumn();
LVColumn(LPCTSTR pszText,
int cx,
int fmt = LVCFMT_CENTER,
int iImage = -1,
int iSubItem = -1,
int iOrder = 0);
void SetMask(const UINT nMask);
void SetFmt(const int nFmt);
void SetWidth(const int cx);
void SetItemText(LPCTSTR lpszItemText);
void SetSubItem(const int nSubItem);
void SetImage(const int nImage);
void SetOrder(const int nOrder);
/// returns the wrapped LVCOLUMN struct
operator LVCOLUMN&()
{
return *(LVCOLUMN*)this;
}
};
}
}
}
std::ostream& operator<<(std::ostream& rStream, const LVCOLUMN& rColumn);
std::istream& operator>>(std::istream& rStream, LVCOLUMN& rColumn);
//*** Modification History ***
// $Log: $
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Real name is Steve Johnson. Programming since 1979. Started on a Heathkit Micro with a DEC LSI-11 and UCSD Pascal. Moved to PCs & DOS as soon as Turbo Pascal became available. Did some Assembly, ISR, TSR etc. All this while working for a Manufacturing Co. for 8 years. Had my own solo Co. doing barcode labeling software for 4 years (terrible business man, all I wanted to do was code). Since then working for various software companies. Moved to Windows around the time of 3.1 with Borland C then C++. Then on to VC++ and MFC, and just about anything I could get my hands on or had to learn for my job, and been at it ever since. Of course recently I've been playing with .NET, ASP, C#, WPF etc.