// Encapsulates the functionality of a "list view control"
m_ListCtrl.Create( WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_SHOWSELALWAYS , rt, hWnd, (UINT)&1);
// CuListCtrl.h
class CuListCtrl
{
private:
CuWnd m_ListCtrlWnd;
public:
CuListCtrl(void);
~CuListCtrl(void);
virtual BOOL Create( DWORD dwStyle, const RECT& rect,
HWND hParentWnd, UINT nID );
int InsertColumn( int nCol, const LVCOLUMN* pColumn );
int InsertColumn( int nCol, TCHAR * lpszColumnHeading,
int nFormat = LVCFMT_LEFT, int nWidth = -1,int nSubItem = -1 );
int InsertItem( const LVITEM* pItem );
int InsertItem( int nItem, TCHAR * lpszItem );
int InsertItem( int nItem, TCHAR * lpszItem, int nImage );
int InsertItem( UINT nMask, int nItem, TCHAR * lpszItem,
UINT nState, UINT nStateMask, int nImage, LPARAM lParam );
BOOL SetItemText( int nItem, int nSubItem, TCHAR * lpszText );
};
// CuListCtrl.cpp
CuListCtrl::CuListCtrl(void)
{
}
CuListCtrl::~CuListCtrl(void)
{
}
BOOL CuListCtrl::Create(
DWORD dwStyle,
const RECT& rect,
HWND hParentWnd,
UINT nID
)
{
return m_ListCtrlWnd.Create(WC_LISTVIEW , L"", dwStyle, rect, hParentWnd, nID);
}
int CuListCtrl::InsertColumn( int nCol, const LVCOLUMN* pColumn )
{
return ListView_InsertColumn(m_ListCtrlWnd.GetSafeHwnd() , nCol, pColumn) ;
}
int CuListCtrl::InsertColumn( int nCol, TCHAR *lpszColumnHeading,
int nFormat /* = LVCFMT_LEFT */, int nWidth /* = -1 */ ,int nSubItem /* = -1 */)
{
LV_COLUMN lvC = {0};
lvC.mask = LVCF_FMT | LVCF_TEXT ;
if( nWidth != -1 )
{
lvC.mask = lvC.mask | LVCF_WIDTH;
lvC.cx = nWidth;
}
if( nSubItem != -1 )
{
lvC.mask = lvC.mask | LVCF_SUBITEM;
lvC.iSubItem = nSubItem;
}
lvC.fmt = nFormat;
lvC.pszText = lpszColumnHeading;
return this->InsertColumn( nCol, &lvC);
}
int CuListCtrl::InsertItem( const LVITEM* pItem )
{
return ListView_InsertItem(m_ListCtrlWnd.GetSafeHwnd(), pItem);
}
int CuListCtrl::InsertItem( int nItem, TCHAR * lpszItem )
{
LVITEM lvI = {0};
lvI.mask = LVIF_TEXT ;
lvI.iItem = nItem;
lvI.pszText = lpszItem;
return this->InsertItem( &lvI);
}
int CuListCtrl::InsertItem( int nItem, TCHAR * lpszItem, int nImage )
{
LVITEM lvI = {0};
lvI.mask = LVIF_TEXT | LVIF_IMAGE ;
lvI.iItem = nItem;
lvI.pszText = lpszItem;
lvI.iImage = nImage;
return this->InsertItem( &lvI);
}
int CuListCtrl::InsertItem( UINT nMask, int nItem, TCHAR * lpszItem,
UINT nState, UINT nStateMask, int nImage, LPARAM lParam )
{
LVITEM lvI = {0};
lvI.mask = nMask;
lvI.iItem = nItem;
lvI.pszText = lpszItem;
lvI.state = nState;
lvI.stateMask = nStateMask;
lvI.iImage = nImage;
lvI.lParam = lParam;
return this->InsertItem( &lvI);
}
BOOL CuListCtrl::SetItemText( int nItem, int nSubItem, TCHAR * lpszText )
{
ListView_SetItemText( m_ListCtrlWnd.GetSafeHwnd(), nItem, nSubItem, lpszText)
return true;
}
這個是很無聊的封裝, 但在CE上作業時, 不開MFC下, 也只能包一包
沒有留言:
張貼留言