www.pudn.com > superlistctrl.rar > supervw.cpp
// SuperVw.cpp : implementation file
//
#include "stdafx.h"
#include "SuperGrid.h"
#include "SuperVw.h"
#include "TestTreeDlg.h"
#include "NewItem.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSuperVw
IMPLEMENT_DYNCREATE(CSuperVw, CView)
CSuperVw::CSuperVw()
{
}
CSuperVw::~CSuperVw()
{
}
BEGIN_MESSAGE_MAP(CSuperVw, CView)
//{{AFX_MSG_MAP(CSuperVw)
ON_WM_SIZE()
ON_WM_CREATE()
ON_COMMAND(ID_TOOLS_VIEWINADIALOG, Ondialog)
ON_COMMAND(IDD_DIALOG1, OnDialog1)
ON_COMMAND(ID_TOOLS_COLLAPSE, OnToolsCollapse)
ON_COMMAND(ID_TOOLS_DELETE, OnToolsDelete)
ON_COMMAND(ID_TOOLS_EXPAND, OnToolsExpand)
ON_COMMAND(ID_TOOLS_EXPANDALL, OnToolsExpandall)
ON_COMMAND(ID_TOOLS_SEARCH, OnToolsSearch)
ON_COMMAND(ID_TOOLS_SORT, OnToolsSort)
//}}AFX_MSG_MAP
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSuperVw drawing
void CSuperVw::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here
}
BOOL CSuperVw::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CSuperVw::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
}
void CSuperVw::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CSuperVw::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrepareDC(pDC, pInfo);
}
void CSuperVw::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
#if _MSC_VER >= 1200
if(m_List.GetExtendedStyle() & LVS_EX_CHECKBOXES)
#else
DWORD dwStyle = ::SendMessage(m_List.m_hWnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
if(dwStyle & LVS_EX_CHECKBOXES)
#endif
m_List.HowToLoopThroughAllItems_that_has_a_checkmark_and_print_them_or_what_ever(pDC);
else
m_List.HowToLoopThroughAllItems_if_we_wanted_to_print_them_or_what_ever(pDC);
CView::OnPrint(pDC, pInfo);
}
/////////////////////////////////////////////////////////////////////////////
// CSuperVw diagnostics
#ifdef _DEBUG
void CSuperVw::AssertValid() const
{
CView::AssertValid();
}
void CSuperVw::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CSuperVw message handlers
void CSuperVw::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
if(m_List.GetSafeHwnd())
m_List.SetWindowPos(0,-1,-1,cx,cy,SWP_SHOWWINDOW);
}
int CSuperVw::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
m_List.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_SINGLESEL | LVS_SHAREIMAGELISTS | LVS_OWNERDRAWFIXED | LVS_SHOWSELALWAYS,CRect(0,0,0,0),this,0x100);
m_List.InitializeGrid();
return 0;
}
void CSuperVw::Ondialog()
{
CTestTreeDlg dlg;
dlg.DoModal();
}
void CSuperVw::OnDialog1()
{
if(m_List.GetSafeHwnd())
{
int nIndex = m_List.GetNextItem(-1, LVNI_ALL | LVNI_SELECTED);
if(nIndex!=-1)
{
CNewItem dlg;
if(dlg.DoModal()==IDOK)
m_List.HowToInsertItemsAfterTheGridHasBeenInitialized(nIndex, dlg.m_strItem);
}
}
}
//Yes I know this is so cheap programming, but let's all get on with our lifes :)
void CSuperVw::OnToolsCollapse()
{
m_List.SendMessage(WM_KEYDOWN,(WPARAM)VK_SUBTRACT,0);
}
void CSuperVw::OnToolsDelete()
{
m_List.SendMessage(WM_KEYDOWN,(WPARAM)VK_DELETE,0);
}
void CSuperVw::OnToolsExpand()
{
m_List.SendMessage(WM_KEYDOWN,(WPARAM)VK_ADD,0);
}
void CSuperVw::OnToolsExpandall()
{
m_List.SendMessage(WM_KEYDOWN,(WPARAM)VK_MULTIPLY,0);
}
void CSuperVw::OnToolsSearch()
{
m_List.HowToSearch_I_am_using_hardcoded_values_here_cause_I_am_tired_now();
}
void CSuperVw::OnToolsSort()
{
m_List.SortData();
}