itemedit.cpp
来自「用Visual c++.net开发的图书管理系统」· C++ 代码 · 共 95 行
CPP
95 行
#include "stdafx.h"
#include "ItemEdit.h"
#include ".\itemedit.h"
#include "EditList.h"
// CItemEdit
IMPLEMENT_DYNAMIC(CItemEdit, CEdit)
CItemEdit::CItemEdit()
{
m_pList = NULL;
m_nItem = -1;
m_nSubItem = -1;
}
CItemEdit::CItemEdit(CListCtrl *pList, int nItem, int nSubItem)
{
m_pList = pList;
m_nItem = nItem;
m_nSubItem = nSubItem;
Create();
}
void CItemEdit::SetListCtrl(CListCtrl *pList, int nItem, int nSubItem)
{
m_pList = pList;
m_nItem = nItem;
m_nSubItem = nSubItem;
}
CItemEdit::~CItemEdit()
{
}
BEGIN_MESSAGE_MAP(CItemEdit, CEdit)
ON_WM_KILLFOCUS()
END_MESSAGE_MAP()
void CItemEdit::OnKillFocus(CWnd* pNewWnd)
{
CEdit::OnKillFocus(pNewWnd);
if ( m_pList != NULL )
{
CString strText;
GetWindowText( strText );
if ( m_pList->GetItemText( m_nItem, m_nSubItem ) != strText )
{
static_cast<CEditList *>( m_pList )->SetEditedFlag( m_nItem, m_nSubItem, TRUE );
m_pList->SetItemText( m_nItem, m_nSubItem, strText );
}
m_pList->Invalidate();
}
delete this;
}
BOOL CItemEdit::Create()
{
CRect rect;
int nHeight = 12;// default value
if ( m_pList != NULL )
{
m_pList->GetSubItemRect( m_nItem, m_nSubItem, LVIR_BOUNDS, rect );
nHeight = rect.Height() - 2;
// if the m_nSubItem == 0, the rect will be the whole row's rect. Code below would avoid this case
rect.right = rect.left + m_pList->GetColumnWidth( m_nSubItem );
rect.bottom--;// keep bottom line of list visible;
rect.left++;// keep left line of list visible;
}
BOOL bRet = CEdit::Create( WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL | ES_WANTRETURN, rect, m_pList, 0x1234 );
TRACE1( _T("Height: %d\r\n"), nHeight );
m_font.CreateFont(
nHeight, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
"Arial");
SetFont( &m_font );
SetWindowText( m_pList->GetItemText( m_nItem, m_nSubItem ) );
SetFocus();
return bRet;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?