// 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_
//#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_
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)