初步修复
This commit is contained in:
parent
8fc4357cc6
commit
e4714f3f0e
46705 changed files with 12004901 additions and 0 deletions
|
|
@ -0,0 +1,170 @@
|
|||
// ExcelEditCtrl.cpp : implementation file
|
||||
//
|
||||
// This file is a part of the XTREME CONTROLS MFC class library.
|
||||
// (c)1998-2008 Codejock Software, All Rights Reserved.
|
||||
//
|
||||
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
||||
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
||||
// CONSENT OF CODEJOCK SOFTWARE.
|
||||
//
|
||||
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
||||
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
||||
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
||||
// SINGLE COMPUTER.
|
||||
//
|
||||
// CONTACT INFORMATION:
|
||||
// support@codejock.com
|
||||
// http://www.codejock.com
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ExcelTab.h"
|
||||
#include "ExcelEditCtrl.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CExcelEditCtrl
|
||||
|
||||
CExcelEditCtrl::CExcelEditCtrl()
|
||||
{
|
||||
}
|
||||
|
||||
CExcelEditCtrl::~CExcelEditCtrl()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CExcelEditCtrl, CEdit)
|
||||
//{{AFX_MSG_MAP(CExcelEditCtrl)
|
||||
ON_WM_HSCROLL()
|
||||
ON_WM_CREATE()
|
||||
ON_WM_SIZE()
|
||||
ON_CONTROL_REFLECT(EN_UPDATE, OnUpdate)
|
||||
ON_WM_KEYDOWN()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CExcelEditCtrl message handlers
|
||||
|
||||
void CExcelEditCtrl::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
|
||||
{
|
||||
if (m_ScrollBarH.m_hWnd &&
|
||||
pScrollBar->GetSafeHwnd() == m_ScrollBarH.m_hWnd)
|
||||
{
|
||||
SCROLLINFO si;
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cbSize = sizeof(si);
|
||||
si.fMask = SIF_PAGE;
|
||||
m_ScrollBarH.GetScrollInfo(&si);
|
||||
|
||||
int x = m_ScrollBarH.GetScrollPos();
|
||||
switch (nSBCode)
|
||||
{
|
||||
case SB_TOP:
|
||||
x = 0;
|
||||
break;
|
||||
case SB_BOTTOM:
|
||||
x = INT_MAX;
|
||||
break;
|
||||
case SB_LINEUP:
|
||||
x--;
|
||||
break;
|
||||
case SB_LINEDOWN:
|
||||
x++;
|
||||
break;
|
||||
case SB_PAGEUP:
|
||||
x -= si.nPage;
|
||||
break;
|
||||
case SB_PAGEDOWN:
|
||||
x += si.nPage;
|
||||
break;
|
||||
case SB_THUMBTRACK:
|
||||
x = nPos;
|
||||
break;
|
||||
}
|
||||
si.nPos = x;
|
||||
si.fMask = SIF_POS;
|
||||
m_ScrollBarH.SetScrollInfo(&si);
|
||||
}
|
||||
|
||||
CEdit::OnHScroll(nSBCode, nPos, pScrollBar);
|
||||
}
|
||||
|
||||
CScrollBar* CExcelEditCtrl::GetScrollBarCtrl(int nBar) const
|
||||
{
|
||||
if (nBar == SB_HORZ)
|
||||
{
|
||||
CScrollBar *pSB = (CScrollBar *)&m_ScrollBarH;
|
||||
SCROLLINFO si;
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cbSize = sizeof(si);
|
||||
if (m_ScrollBarH.m_hWnd == NULL)
|
||||
{
|
||||
pSB->Create(WS_CHILD, CRect(0, 0, 0, 0), (CWnd *)this, 0);
|
||||
si.fMask = SIF_ALL;
|
||||
if (::GetScrollInfo(m_hWnd, SB_HORZ, &si))
|
||||
{
|
||||
pSB->SetScrollInfo (&si);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
si.fMask = SIF_RANGE | SIF_POS;
|
||||
::SendMessage(m_hWnd, WM_SETREDRAW, FALSE, 0);
|
||||
::ShowScrollBar(m_hWnd, SB_HORZ, TRUE);
|
||||
::GetScrollInfo(m_hWnd, SB_HORZ, &si);
|
||||
::ShowScrollBar(m_hWnd, SB_HORZ, FALSE);
|
||||
::SendMessage(m_hWnd, WM_SETREDRAW, TRUE, 0);
|
||||
pSB->SetScrollInfo (&si);
|
||||
}
|
||||
return pSB;
|
||||
}
|
||||
|
||||
return CEdit::GetScrollBarCtrl(nBar);
|
||||
}
|
||||
|
||||
int CExcelEditCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
||||
{
|
||||
if (CEdit::OnCreate(lpCreateStruct) == -1)
|
||||
return -1;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void CExcelEditCtrl::OnSize(UINT nType, int cx, int cy)
|
||||
{
|
||||
CEdit::OnSize(nType, cx, cy);
|
||||
|
||||
if (m_ScrollBarH.m_hWnd)
|
||||
{
|
||||
SCROLLINFO si;
|
||||
ZeroMemory(&si, sizeof(si));
|
||||
si.cbSize = sizeof(si);
|
||||
CRect r;
|
||||
GetClientRect(r);
|
||||
si.fMask = SIF_PAGE;
|
||||
si.nPage = r.Width() - 1;
|
||||
m_ScrollBarH.SetScrollInfo(&si);
|
||||
}
|
||||
}
|
||||
|
||||
void CExcelEditCtrl::OnUpdate()
|
||||
{
|
||||
CXTExcelTabCtrl *pParent = (CXTExcelTabCtrl *)GetParent();
|
||||
ASSERT_KINDOF(CXTExcelTabCtrl, pParent);
|
||||
pParent->SyncScrollBar();
|
||||
}
|
||||
|
||||
void CExcelEditCtrl::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
|
||||
{
|
||||
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
|
||||
OnUpdate();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue