📄 listctrlarea.cpp
字号:
// ListCtrlArea.cpp : implementation file
//
#include "stdafx.h"
#include "pitc.h"
#include "ListCtrlArea.h"
#include "MainFrm.h"
#include "AreaDlg.h"
#include "BCMenu.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CString areaFlag;
/////////////////////////////////////////////////////////////////////////////
// CListCtrlArea
CListCtrlArea::CListCtrlArea()
{
}
CListCtrlArea::~CListCtrlArea()
{
}
BEGIN_MESSAGE_MAP(CListCtrlArea, CMyListCtrl)
//{{AFX_MSG_MAP(CListCtrlArea)
ON_WM_RBUTTONDOWN()
ON_WM_CREATE()
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemchanged)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CListCtrlArea message handlers
void CListCtrlArea::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
//AfxMessageBox("OnItemchanged!");
CMainFrame *pMainFrm;
pMainFrm=(CMainFrame *)(AfxGetApp()->m_pMainWnd);
int count=GetSelectedCount();
if(0==count)
{
pMainFrm->m_bAreaEdit=FALSE;
pMainFrm->m_bAreaDelete=FALSE;
}
else
{
pMainFrm->m_bAreaEdit=TRUE;
pMainFrm->m_bAreaDelete=TRUE;
////
POSITION pos = GetFirstSelectedItemPosition();
int m=GetNextSelectedItem(pos);
AREA_T area_t;
CString str;
str=GetItemText(m,0);
area_t.area=str;
str=GetItemText(m,1);
area_t.start=atof(str);
//::SendMessage(pMainFrm->m_pComputView->GetSafeHwnd(),WM_UPDATE_AREA,0,(LPARAM)(&area_t));
pMainFrm->m_pComputView->UpdateDisplay();
////
}
///////////
*pResult = 0;
}
BOOL CListCtrlArea::ExamArea()
{
int count=GetItemCount();
/*
if(count==0)
{
AfxMessageBox("所在地列表不能为空!");
return FALSE;
}
*/
for(int m=0;m<count;m++)
{
if(atof(GetItemText(m,1))<0)
{
CString str;
str.Format("第%d行的起征点的值应>=0!",m+1);
AfxMessageBox(str);
return FALSE;
}
}
return TRUE;
}
void CListCtrlArea::OnRButtonDown(UINT nFlags, CPoint point)
{
CMyListCtrl::OnRButtonDown(nFlags, point);
// TODO: Add your message handler code here and/or call default
CMainFrame *pMain;
pMain=(CMainFrame*)(AfxGetApp()->m_pMainWnd);
//BCMenu menu;
CMenu menu;
if(menu.CreatePopupMenu())
{
menu.AppendMenu(MF_STRING, ID_AREA_ADD, "添加所在地");
if(pMain->m_bAreaEdit)
menu.AppendMenu(MF_ENABLED|MF_STRING, ID_AREA_EDIT, "修改所在地");
else
menu.AppendMenu(MF_DISABLED|MF_GRAYED, ID_AREA_EDIT, "修改所在地");
if(pMain->m_bAreaDelete)
menu.AppendMenu(MF_ENABLED|MF_STRING, ID_AREA_DELETE, "删除所在地");
else
menu.AppendMenu(MF_DISABLED|MF_GRAYED, ID_AREA_DELETE, "删除所在地");
menu.AppendMenu(MF_ENABLED|MF_STRING, ID_AREA_CLEAR, "清空所在地列表");
menu.AppendMenu(MF_STRING, MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_CONFIG_NEW, "新建配置");
menu.AppendMenu(MF_STRING, ID_CONFIG_LOAD, "加载配置");
menu.AppendMenu(MF_STRING, ID_CONFIG_SAVE, "保存配置");
CPoint pt;
pt=point;
this->ClientToScreen(&pt);
menu.TrackPopupMenu(TPM_LEFTALIGN, pt.x, pt.y, pMain);
//menu.DestroyMenu();//采用BCMenu后要执行清理
}
/////
}
int CListCtrlArea::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMyListCtrl::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
SetExtendedStyle(LVS_REPORT|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
//::SendMessage(pListArea->m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,
// LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
InsertColumn(0,"所在地",LVCFMT_RIGHT,250);
InsertColumn(1,"起征点 (元)",LVCFMT_RIGHT,250);
m_ColType.Add("11");
m_ColType.Add("4");
EnableSort(TRUE);
/*
CString area[4]={"北京","上海","深圳","其它"};
CString from[4]={"1000","1000","1600","800"};
int nitem;
for(int i=0;i<4;i++)
{
nitem=InsertItem(i,area[i]);
SetItemText(nitem,1,from[i]);
}
*/
return 0;
}
void CListCtrlArea::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//::SendMessage(this->GetSafeHwnd(),LVN_ITEMCHANGED,0,0);
CMainFrame *pMainFrm;
pMainFrm=(CMainFrame *)(AfxGetApp()->m_pMainWnd);
int count=GetSelectedCount();
if(0==count)
{
pMainFrm->m_bAreaEdit=FALSE;
pMainFrm->m_bAreaDelete=FALSE;
}
else
{
pMainFrm->m_bAreaEdit=TRUE;
pMainFrm->m_bAreaDelete=TRUE;
////
POSITION pos = GetFirstSelectedItemPosition();
int m=GetNextSelectedItem(pos);
AREA_T area_t;
CString str;
str=GetItemText(m,0);
area_t.area=str;
str=GetItemText(m,1);
area_t.start=atof(str);
//::SendMessage(pMainFrm->m_pComputView->GetSafeHwnd(),WM_UPDATE_AREA,0,(LPARAM)(&area_t));
pMainFrm->m_pComputView->UpdateDisplay();
////
}
///////
CMyListCtrl::OnLButtonDown(nFlags, point);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -