// EditCell.cpp : implementation file
//#include "stdafx.h"#ifndef QUICKLIST_NOEDIT#include "QuickEdit.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// CQuickEditCQuickEdit::CQuickEdit (CQuickList* pCtrl, int iItem, int iSubItem, CString sInitText, bool endonlostfocus)
{
    pListCtrl = pCtrl;
    Item = iItem;
    SubItem = iSubItem;
    InitText = sInitText; m_isClosing = false;
m_endOnLostFocus = endonlostfocus;
}CQuickEdit::~CQuickEdit()
{
}BEGIN_MESSAGE_MAP(CQuickEdit, CEdit)
    //{{AFX_MSG_MAP(CQuickEdit)
    ON_WM_KILLFOCUS()
    ON_WM_CHAR()
    ON_WM_CREATE()
    ON_WM_GETDLGCODE()
ON_WM_KEYUP()
ON_WM_KEYDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CQuickEdit message handlersvoid CQuickEdit::SetEndOnLostFocus(bool autoend)
{
m_endOnLostFocus = autoend;
}BOOL CQuickEdit::PreTranslateMessage (MSG* pMsg) 
{
    if (pMsg->message == WM_KEYDOWN)
    {
    if (pMsg->wParam == VK_RETURN || pMsg->wParam == VK_DELETE || 
pMsg->wParam == VK_ESCAPE)// || pMsg->wParam == VK_TAB || 
//pMsg->wParam == VK_UP || pMsg->wParam == VK_DOWN || GetKeyState (VK_CONTROL))
{
::TranslateMessage (pMsg);
::DispatchMessage (pMsg);
return TRUE;      // DO NOT process further
}
    }    return CEdit::PreTranslateMessage (pMsg);
}void CQuickEdit::OnKillFocus (CWnd* pNewWnd) 
{
    CEdit::OnKillFocus(pNewWnd); //End edit?
if(!m_isClosing)
{
if(m_endOnLostFocus)
{
StopEdit(false);
}
else
{
//Notify list parent
pListCtrl->GetParent()->SendMessage( WM_QUICKLIST_EDITINGLOSTFOCUS,
(WPARAM) pListCtrl->GetSafeHwnd(),
0);
}
}
}void CQuickEdit::OnChar (UINT nChar, UINT nRepCnt, UINT nFlags) 
{
    BOOL Shift = GetKeyState (VK_SHIFT) < 0;
    switch (nChar)
    {
case VK_ESCAPE :
{
//GetParent()->SetFocus();
StopEdit(TRUE, VK_ESCAPE);
return;
}
case VK_RETURN :
{
StopEdit(FALSE, VK_RETURN);
//bEscape = FALSE;
//SetListText();
// GetParent()->SetFocus();
//pListCtrl->EditSubItem (Item + 1, 0);
return;
}
    }    CEdit::OnChar (nChar, nRepCnt, nFlags);
 
}int CQuickEdit::OnCreate (LPCREATESTRUCT lpCreateStruct) 
{
    if (CEdit::OnCreate (lpCreateStruct) == -1)
return -1;    // Set the proper font
    CFont* Font = GetParent()->GetFont();
    SetFont (Font);    SetWindowText (InitText);
    SetFocus();
    SetSel (0, -1);
    return 0;
}UINT CQuickEdit::OnGetDlgCode() 
{
    return CEdit::OnGetDlgCode() | DLGC_WANTARROWS;// | DLGC_WANTTAB;
}#endif//Stop editing
void CQuickEdit::StopEdit(bool cancel, UINT endkey)
{
m_isClosing = true;
// SetListText(); //Don't call SetListText to set the text. The reason is that
//the object may be destoyed before DestroyWindow() in this function
//is called. CString Text;
GetWindowText (Text);#ifndef QUICKLIST_NOEDIT
if(pListCtrl != NULL)
pListCtrl->m_edit = NULL;
#endif
DestroyWindow();#ifndef QUICKLIST_NOEDIT
pListCtrl->OnEndEdit(Item, SubItem, Text, cancel, endkey);
#endif delete this;
}
#if !defined(AFX_QUICKEDITCELL_H__2EB671B5_0711_11D3_90AB_00E029355177__INCLUDED_)
#define AFX_QUICKEDITCELL_H__2EB671B5_0711_11D3_90AB_00E029355177__INCLUDED_

解决方案 »

  1.   

    Compiling...
    QuickEdit.cpp
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbDBEngine' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pEngine' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbWorkspace' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pWorkspace' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbDatabase' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pDatabase' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : warning C4229: anachronism used : modifiers on data are ignored
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2182: 'SetJet' : illegal use of type 'void'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2491: 'SetJet' : definition of dllimport data not allowed
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2078: too many initializers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2143: syntax error : missing ';' before '*'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2501: 'CdbDatabase' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2370: 'CdbDatabase' : redefinition; different storage class
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2501: 'GetDatabase' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(98) : error C2061: syntax error : identifier 'CdbException'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2146: syntax error : missing ';' before identifier 'm_cRecordset'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2501: 'CdbRecordset' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2501: 'm_cRecordset' : missing storage-class or type specifiers
    QuickList.cpp
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbDBEngine' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pEngine' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbWorkspace' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pWorkspace' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'CdbDatabase' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2065: 'pDatabase' : undeclared identifier
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : warning C4229: anachronism used : modifiers on data are ignored
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2182: 'SetJet' : illegal use of type 'void'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2491: 'SetJet' : definition of dllimport data not allowed
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(68) : error C2078: too many initializers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2143: syntax error : missing ';' before '*'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2501: 'CdbDatabase' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2370: 'CdbDatabase' : redefinition; different storage class
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(69) : error C2501: 'GetDatabase' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(98) : error C2061: syntax error : identifier 'CdbException'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2146: syntax error : missing ';' before identifier 'm_cRecordset'
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2501: 'CdbRecordset' : missing storage-class or type specifiers
    c:\program files\microsoft visual studio\vc98\include\dbsets.h(192) : error C2501: 'm_cRecordset' : missing storage-class or type specifiers
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1060) : error C2039: 'm_bXPTheme' : is not a member of 'CTheme'
            c:\program files\microsoft visual studio\vc98\include\theme.h(40) : see declaration of 'CTheme'
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1063) : error C2065: 'BP_CHECKBOX' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1064) : error C2065: 'CBS_UNCHECKEDNORMAL' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1068) : error C2065: 'BP_RADIOBUTTON' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1071) : error C2065: 'RBS_CHECKEDNORMAL' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1073) : error C2065: 'RBS_UNCHECKEDNORMAL' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1077) : error C2065: 'BP_PUSHBUTTON' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1080) : error C2065: 'PBS_PRESSED' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1082) : error C2065: 'PBS_NORMAL' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1089) : error C2065: 'CBS_CHECKEDNORMAL' : undeclared identifier
    C:\Program Files\Microsoft Visual Studio\MyProjects\MyListCtrl\QuickList.cpp(1094) : error C2039: 'DrawThemeBackground' : is not a member of 'CTheme'
            c:\program files\microsoft visual studio\vc98\include\theme.h(40) : see declaration of 'CTheme'
    Generating Code...
    Error executing cl.exe.MyListCtrl.exe - 45 error(s), 2 warning(s)