📄 editedlistctrl.cpp
字号:
// EditedListCtrl.cpp : implementation file
//
#include "stdafx.h"
#include "tempListCanEdited.h"
#include "EditedListCtrl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEditedListCtrl
int CEditedListCtrl::t=0;
CEditedListCtrl::CEditedListCtrl()
{
}
CEditedListCtrl::~CEditedListCtrl()
{
}
BEGIN_MESSAGE_MAP(CEditedListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CEditedListCtrl)
ON_WM_LBUTTONDBLCLK()
//}}AFX_MSG_MAP
ON_MESSAGE(WM_USER_EDIT_END,OnEditEnd)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEditedListCtrl message handlers
void CEditedListCtrl::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rcCtrl;
LVHITTESTINFO lvhti;
lvhti.pt = point;
int nItem = CListCtrl::SubItemHitTest(&lvhti);
if(nItem == -1)
return;
int nSubItem = lvhti.iSubItem;
CListCtrl::GetSubItemRect(nItem,nSubItem,LVIR_LABEL,rcCtrl);
ShowEdit(TRUE,nItem,nSubItem,rcCtrl);
CListCtrl::OnLButtonDblClk(nFlags, point);
}
void CEditedListCtrl::ShowEdit(BOOL bShow,int nItem,int nIndex,CRect rcCtrl)
{
if(m_edit.m_hWnd == NULL)
{
m_edit.Create(ES_AUTOHSCROLL|WS_CHILD|ES_LEFT|ES_WANTRETURN|WS_BORDER,CRect(0,0,0,0),this,IDC_EDIT);
m_edit.ShowWindow(SW_HIDE);
CFont tFont;
tFont.CreateStockObject(DEFAULT_GUI_FONT);
m_edit.SetFont( & tFont);
tFont.DeleteObject();
}
if(bShow == TRUE)
{
CString strItem = CListCtrl::GetItemText(nItem,nIndex);
m_edit.MoveWindow(rcCtrl);
m_edit.ShowWindow(SW_SHOW);
m_edit.SetWindowText(strItem);
::SetFocus(m_edit.GetSafeHwnd());
m_edit.SetSel(-1);
m_edit.SetCtrlData(MAKEWPARAM(nIndex,nItem));
}
else
m_edit.ShowWindow(SW_HIDE);
}
void CEditedListCtrl::OnEditEnd(WPARAM wParam,LPARAM lParam)
{ //HINSTANCE hIns=(HINSTANCE)GetModuleHandle(NULL);
CTempListCanEditedDlg * dlg = (CTempListCanEditedDlg *)GetParent();
if(wParam == TRUE)
{
CString strText(_T(""));
m_edit.GetWindowText(strText);
DWORD dwData = m_edit.GetCtrlData();
int nItem= dwData>>16;
int nIndex = dwData&0x0000ffff;
CListCtrl::SetItemText(nItem,nIndex,strText);
if (nIndex = 1)
{ CString a ;
a = GetItemText(nItem,1);
CString b;
b = GetItemText(nItem,2);
CString c;
c.Format("%d",atoi(a)-atoi(b));
SetItemText(nItem,3,c);
CString d;
d.Format("%.2f",atof(c)*0.65) ;
SetItemText(nItem,4,d);
CString e;
e.Format("%d",atoi(a)-atoi(b)+t);
t=atoi(a)-atoi(b);
dlg->SetDlgItemText(IDC_FENBIAOHE,e);
CString f;
dlg->UpdateData(TRUE);
f.Format("%d",dlg->m_tmdushu - dlg->m_totalFenbiao);
dlg->SetDlgItemText(IDC_ZONGTANXIAO,f);
}
if (nIndex = 7)
{
CString a;
a = GetItemText(nItem,7);
CString b;
b = GetItemText(nItem,4);
CString c;
c.Format("%.2f",atof(a)+atof(b));
SetItemText(nItem,8,c);
CString e;
dlg->UpdateData(TRUE);
dlg->m_daitanxiao = dlg->m_zongtanxiao - atoi(a);
// e.Format("%d",(int)dlg->m_zongtanxiao*0.65-atoi(a));
dlg->UpdateData(false);
// dlg->SetDlgItemText(IDC_DAITANXIAO,e);
dlg->Invalidate(); //居然刷新不出来
}
}
if(lParam == FALSE)
m_edit.ShowWindow(SW_HIDE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -