503 lines
16 KiB
C++
503 lines
16 KiB
C++
// ExcelTabDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "ExcelTab.h"
|
|
#include "ExcelTabDlg.h"
|
|
#include "ExcelTabProperties.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExcelTabDlg dialog
|
|
|
|
CExcelTabDlg::CExcelTabDlg(CWnd* pParent /*=NULL*/)
|
|
: CXTResizeDialog(CExcelTabDlg::IDD, pParent)
|
|
, m_dwTabStyle(0)
|
|
, m_bBottom(TRUE)
|
|
, m_bHasArrows(TRUE)
|
|
, m_bHasHomeEnd(FALSE)
|
|
, m_bHScroll(TRUE)
|
|
, m_pSheet7(NULL)
|
|
, m_pSheet8(NULL)
|
|
, m_pExcelTabCtrl(NULL)
|
|
{
|
|
//{{AFX_DATA_INIT(CExcelTabDlg)
|
|
//}}AFX_DATA_INIT
|
|
|
|
UpdateTabsStyle();
|
|
|
|
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
|
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
|
}
|
|
|
|
void CExcelTabDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CXTResizeDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CExcelTabDlg)
|
|
DDX_Control(pDX, IDC_BORDER_TAB, m_staticBorder);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CExcelTabDlg, CXTResizeDialog)
|
|
//{{AFX_MSG_MAP(CExcelTabDlg)
|
|
ON_WM_SYSCOMMAND()
|
|
ON_WM_PAINT()
|
|
ON_WM_QUERYDRAGICON()
|
|
ON_WM_DESTROY()
|
|
ON_BN_CLICKED(IDC_PROPERTIES, OnProperties)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CExcelTabDlg message handlers
|
|
|
|
BOOL CExcelTabDlg::OnInitDialog()
|
|
{
|
|
CXTResizeDialog::OnInitDialog();
|
|
|
|
// Add "About..." menu item to system menu.
|
|
|
|
// IDM_ABOUTBOX must be in the system command range.
|
|
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
|
ASSERT(IDM_ABOUTBOX < 0xF000);
|
|
|
|
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
|
if (pSysMenu != NULL)
|
|
{
|
|
CString strAboutMenu;
|
|
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
|
if (!strAboutMenu.IsEmpty())
|
|
{
|
|
pSysMenu->AppendMenu(MF_SEPARATOR);
|
|
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
|
}
|
|
}
|
|
|
|
// Set the icon for this dialog. The framework does this automatically
|
|
// when the application's main window is not a dialog
|
|
SetIcon(m_hIcon, TRUE); // Set big icon
|
|
SetIcon(m_hIcon, FALSE); // Set small icon
|
|
|
|
// Set control resizing.
|
|
SetResize(IDC_BORDER_TAB, SZ_TOP_LEFT, SZ_BOTTOM_RIGHT);
|
|
SetResize(IDC_PROPERTIES, SZ_BOTTOM_LEFT, SZ_BOTTOM_LEFT);
|
|
SetResize(IDOK, SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);
|
|
SetResize(IDCANCEL, SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);
|
|
|
|
// Create the flat tab control.
|
|
CalcTabRect();
|
|
CreateExcelTab();
|
|
|
|
// Load window placement
|
|
LoadPlacement(_T("CExcelTabDlg"));
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
}
|
|
|
|
void CExcelTabDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
|
{
|
|
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
|
{
|
|
CAboutDlg dlgAbout;
|
|
dlgAbout.DoModal();
|
|
}
|
|
else
|
|
{
|
|
CXTResizeDialog::OnSysCommand(nID, lParam);
|
|
}
|
|
}
|
|
|
|
// If you add a minimize button to your dialog, you will need the code below
|
|
// to draw the icon. For MFC applications using the document/view model,
|
|
// this is automatically done for you by the framework.
|
|
|
|
void CExcelTabDlg::OnPaint()
|
|
{
|
|
if (IsIconic())
|
|
{
|
|
CPaintDC dc(this); // device context for painting
|
|
|
|
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
|
|
|
// Center icon in client rectangle
|
|
int cxIcon = GetSystemMetrics(SM_CXICON);
|
|
int cyIcon = GetSystemMetrics(SM_CYICON);
|
|
CRect rect;
|
|
GetClientRect(&rect);
|
|
int x = (rect.Width() - cxIcon + 1) / 2;
|
|
int y = (rect.Height() - cyIcon + 1) / 2;
|
|
|
|
// Draw the icon
|
|
dc.DrawIcon(x, y, m_hIcon);
|
|
}
|
|
else
|
|
{
|
|
CXTResizeDialog::OnPaint();
|
|
}
|
|
}
|
|
|
|
// The system calls this to obtain the cursor to display while the user drags
|
|
// the minimized window.
|
|
HCURSOR CExcelTabDlg::OnQueryDragIcon()
|
|
{
|
|
return (HCURSOR) m_hIcon;
|
|
}
|
|
|
|
void CExcelTabDlg::OnDestroy()
|
|
{
|
|
CXTResizeDialog::OnDestroy();
|
|
|
|
// Save window placement
|
|
SavePlacement(_T("CExcelTabDlg"));
|
|
|
|
if (::IsWindow(m_pSheet7->GetSafeHwnd()))
|
|
m_pSheet7->DestroyWindow();
|
|
|
|
if (::IsWindow(m_pSheet8->GetSafeHwnd()))
|
|
m_pSheet8->DestroyWindow();
|
|
|
|
SAFE_DELETE(m_pExcelTabCtrl);
|
|
}
|
|
|
|
void CExcelTabDlg::UpdateTabsStyle()
|
|
{
|
|
DWORD dwNewStyle = 0;
|
|
|
|
if (m_bHasHomeEnd)
|
|
{
|
|
dwNewStyle |= FTS_XT_HASHOMEEND;
|
|
m_bHasArrows = TRUE;
|
|
}
|
|
|
|
if (m_bBottom)
|
|
dwNewStyle |= FTS_XT_BOTTOM;
|
|
|
|
if (m_bHasArrows)
|
|
dwNewStyle |= FTS_XT_HASARROWS;
|
|
|
|
if (m_bHScroll)
|
|
dwNewStyle |= FTS_XT_HSCROLL;
|
|
|
|
dwNewStyle |= FTS_XT_TOOLTIPS;
|
|
|
|
if (dwNewStyle != m_dwTabStyle)
|
|
{
|
|
m_dwTabStyle = dwNewStyle;
|
|
}
|
|
}
|
|
|
|
void CExcelTabDlg::CalcTabRect()
|
|
{
|
|
CXTPWindowRect rcBorder(&m_staticBorder);
|
|
ScreenToClient(&rcBorder);
|
|
|
|
// get the size of the thumb box in a horizontal scroll bar.
|
|
int cy = ::GetSystemMetrics(SM_CXHTHUMB); // SM_CYHSCROLL
|
|
|
|
CRect rTabCtrl = rcBorder;
|
|
rTabCtrl.DeflateRect(2, 2);
|
|
|
|
CRect rcCtrl = rcBorder;
|
|
rcCtrl.DeflateRect(2, 1, 2, cy + 1);
|
|
|
|
// Create the flat tab control.
|
|
m_rTabCtrl = rTabCtrl;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateExcelTab()
|
|
{
|
|
SetRedraw(FALSE);
|
|
|
|
BOOL bResize = FALSE;
|
|
|
|
int iSel = 0;
|
|
CXTPEmptyRect rTab;
|
|
RemoveResize(IDC_EXCEL_TABCTRL);
|
|
|
|
m_pExcelTabCtrl = new CXTExcelTabCtrl();
|
|
|
|
// Create the flat tab control.
|
|
if (!m_pExcelTabCtrl->Create(WS_CHILD|WS_VISIBLE|m_dwTabStyle,
|
|
m_rTabCtrl, this, IDC_EXCEL_TABCTRL))
|
|
{
|
|
TRACE0( "Failed to create flattab control\n" );
|
|
return FALSE;
|
|
}
|
|
|
|
// set the tab control to have a static edge border.
|
|
m_pExcelTabCtrl->ModifyStyleEx(NULL, WS_EX_STATICEDGE);
|
|
|
|
if (!CreateSheet1()) return FALSE;
|
|
if (!CreateSheet2()) return FALSE;
|
|
if (!CreateSheet3()) return FALSE;
|
|
if (!CreateSheet4()) return FALSE;
|
|
if (!CreateSheet5()) return FALSE;
|
|
if (!CreateSheet6()) return FALSE;
|
|
if (!CreateSheet7()) return FALSE;
|
|
if (!CreateSheet8()) return FALSE;
|
|
|
|
// Insert tabs into the flat tab control.
|
|
m_pExcelTabCtrl->InsertItem(0, _T("Build"), &m_sheet1);
|
|
m_pExcelTabCtrl->InsertItem(1, _T("Debug"), &m_sheet2);
|
|
m_pExcelTabCtrl->InsertItem(2, _T("Find in Files 1"), &m_sheet3);
|
|
m_pExcelTabCtrl->InsertItem(3, _T("Find in Files 2"), &m_sheet4);
|
|
m_pExcelTabCtrl->InsertItem(4, _T("Results"), &m_sheet5);
|
|
m_pExcelTabCtrl->InsertItem(5, _T("SQL Debugging"), &m_sheet6);
|
|
m_pExcelTabCtrl->InsertItem(6, _T("Form View"), m_pSheet7);
|
|
m_pExcelTabCtrl->InsertItem(7, _T("Scroll View"), m_pSheet8);
|
|
|
|
m_pExcelTabCtrl->SetTabBackColor(0, RGB(0x80,0x00,0x00));
|
|
m_pExcelTabCtrl->SetTabTextColor(0, RGB(0xff,0xff,0xff));
|
|
m_pExcelTabCtrl->SetSelTabBackColor(0, RGB(0xff,0x00,0x00));
|
|
m_pExcelTabCtrl->SetSelTabTextColor(0, RGB(0xff,0xff,0xff));
|
|
|
|
m_pExcelTabCtrl->SetWindowPos(&wndTop, 0, 0, 0, 0,
|
|
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED);
|
|
|
|
// enable resizing for the flat tab control.
|
|
SetResize(IDC_EXCEL_TABCTRL, SZ_TOP_LEFT, SZ_BOTTOM_RIGHT);
|
|
|
|
if (bResize) {
|
|
CXTResize::Size();
|
|
}
|
|
|
|
m_pExcelTabCtrl->SetCurSel(iSel);
|
|
|
|
SetRedraw(TRUE);
|
|
RedrawWindow(0,0, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet1()
|
|
{
|
|
// Create the sheet1 list box.
|
|
if (!m_sheet1.Create(WS_CHILD |
|
|
LVS_REPORT | LVS_NOCOLUMNHEADER, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET1 ))
|
|
{
|
|
TRACE0( "Failed to create sheet1.\n" );
|
|
return FALSE;
|
|
}
|
|
ListView_SetExtendedListViewStyleEx(m_sheet1.m_hWnd,
|
|
LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
|
|
m_sheet1.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
m_sheet1.InsertColumn(0, _T("Column"), LVCFMT_LEFT, 512);
|
|
m_sheet1.InsertItem(0, _T("--------------------Configuration: ExcelTabDlg - Win32 Debug--------------------"));
|
|
m_sheet1.InsertItem(1, _T("Compiling resources..."));
|
|
m_sheet1.InsertItem(2, _T("Compiling..."));
|
|
m_sheet1.InsertItem(3, _T("StdAfx.cpp"));
|
|
m_sheet1.InsertItem(5, _T("Compiling..."));
|
|
m_sheet1.InsertItem(6, _T("ExcelEditCtrl.cpp"));
|
|
m_sheet1.InsertItem(7, _T("ExcelFormView.cpp"));
|
|
m_sheet1.InsertItem(8, _T("ExcelListCtrl.cpp"));
|
|
m_sheet1.InsertItem(9, _T("ExcelScrollView.cpp"));
|
|
m_sheet1.InsertItem(10, _T("ExcelTab.cpp"));
|
|
m_sheet1.InsertItem(11, _T("ExcelTabDlg.cpp"));
|
|
m_sheet1.InsertItem(12, _T("ExcelTabProperties.cpp"));
|
|
m_sheet1.InsertItem(13, _T("ExcelTabDlg.cpp"));
|
|
m_sheet1.InsertItem(14, _T("ExcelTabProperties.cpp"));
|
|
m_sheet1.InsertItem(15, _T("ExcelTreeCtrl.cpp"));
|
|
m_sheet1.InsertItem(16, _T("MainFrm.cpp"));
|
|
m_sheet1.InsertItem(17, _T("Generating Code..."));
|
|
m_sheet1.InsertItem(18, _T("Linking..."));
|
|
m_sheet1.InsertItem(19, _T(""));
|
|
m_sheet1.InsertItem(20, _T("ExcelTabDialog.exe - 0 error(s), 0 warning(s)"));
|
|
|
|
CXTLogFont lf;
|
|
XTAuxData().font.GetLogFont(&lf);
|
|
STRCPY_S(lf.lfFaceName, LF_FACESIZE, _T("Courier New"));
|
|
m_font.CreateFontIndirect(&lf);
|
|
m_sheet1.SetFont(&m_font);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet2()
|
|
{
|
|
// Create the sheet2 list box.
|
|
if (!m_sheet2.Create( WS_CHILD | WS_TABSTOP | WS_CLIPCHILDREN |
|
|
WS_HSCROLL | WS_VSCROLL | ES_MULTILINE, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET2 ))
|
|
{
|
|
TRACE0( "Failed to create sheet2.\n" );
|
|
return FALSE;
|
|
}
|
|
m_sheet2.SetFont(m_sheet1.GetFont());
|
|
m_sheet2.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
m_sheet2.SetWindowText(
|
|
_T("Loaded 'C:\\WINNT\\System32\\ntdll.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded symbols for 'C:\\WINNT\\system32\\MFC42D.DLL'\r\n")
|
|
_T("Loaded symbols for 'C:\\WINNT\\system32\\MSVCRTD.DLL'\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\KERNEL32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\GDI32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\USER32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\ADVAPI32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\rpcrt4.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\SHELL32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\shlwapi.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\comctl32.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded symbols for 'C:\\WINNT\\system32\\MFCO42D.DLL'\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\OLE32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\OLEAUT32.DLL', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\lpk.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\usp10.dll', no matching symbolic information found.\r\n")
|
|
_T("XTTOOLKIT_DLL.DLL Initializing!\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\indicdll.dll', no matching symbolic information found.\r\n")
|
|
_T("Loaded 'C:\\WINNT\\system32\\imm32.dll', no matching symbolic information found.\r\n")
|
|
_T("The program 'D:\\Controls\\Bin\\ExcelTabDlg.exe' has exited with code 0 (0x0).\r\n"));
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet3()
|
|
{
|
|
// Create the sheet3 list box.
|
|
if (!m_sheet3.Create(
|
|
WS_CHILD | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_VSCROLL,
|
|
CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET3 ))
|
|
{
|
|
TRACE0( "Failed to create sheet3.\n" );
|
|
return FALSE;
|
|
}
|
|
m_sheet3.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
HTREEITEM file;
|
|
file = m_sheet3.InsertItem(_T("D:\\Controls\\Samples\\ExcelTabDlg\\EditCtrlForFlatTab.cpp"));
|
|
m_sheet3.InsertItem(_T("Line 92: pSB->Create(WS_CHILD, CRect(0, 0, 0, 0), (CWnd *)this, 0)"), 0, 0, file);
|
|
file = m_sheet3.InsertItem(_T("D:\\Controls\\Samples\\ExcelTabDlg\\ExcelTabDlg.rc"));
|
|
m_sheet3.InsertItem(_T("Line 190:STYLE WS_CHILD"), 0, 0, file);
|
|
file = m_sheet3.InsertItem(_T("D:\\Controls\\Samples\\ExcelTabDlg\\ExcelTabDlg.cpp"));
|
|
m_sheet3.InsertItem(_T("Line 92: pSB->Create(WS_CHILD, CRect(0, 0, 0, 0), (CWnd *)this, 0)"), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 265: if (!m_pExcelTabDlg->Create(WS_CHILD|WS_VISIBLE|m_dwTabStyle,"), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 293: if (!m_sheet1.Create(WS_CHILD | "), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 303: if (!m_sheet2.Create( WS_CHILD | WS_TABSTOP | WS_CLIPCHILDREN |"), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 312: DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;"), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 316: WS_CHILD | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_VSCROLL, "), 0, 0, file);
|
|
m_sheet3.InsertItem(_T("Line 348: !((CWnd *)m_pSheet7)->Create(NULL, NULL, WS_CHILD, "), 0, 0, file);
|
|
file = m_sheet3.InsertItem(_T("D:\\Controls\\Samples\\ExcelTabDlg\\SampleFormView.cpp"));
|
|
m_sheet3.InsertItem(_T("Line 79: m_ScrollBarH.Create(WS_CHILD, CRect(0, 0, 0, 0), this, 0);"), 0, 0, file);
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet4()
|
|
{
|
|
// Define the default style for the output list boxes.
|
|
DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
|
|
|
|
// Create the sheet4 list box.
|
|
if (!m_sheet4.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET4 ))
|
|
{
|
|
TRACE0( "Failed to create sheet4.\n" );
|
|
return FALSE;
|
|
}
|
|
m_sheet4.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
m_sheet4.SetFont(&XTAuxData().font);
|
|
m_sheet4.AddString(_T("Find in Files 2 Tab Output..."));
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet5()
|
|
{
|
|
// Define the default style for the output list boxes.
|
|
DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
|
|
|
|
// Create the sheet5 list box.
|
|
if (!m_sheet5.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET5 ))
|
|
{
|
|
TRACE0( "Failed to create sheet5.\n" );
|
|
return FALSE;
|
|
}
|
|
m_sheet5.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
m_sheet5.SetFont(&XTAuxData().font);
|
|
m_sheet5.AddString(_T("Results Tab Output..."));
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet6()
|
|
{
|
|
// Define the default style for the output list boxes.
|
|
DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
|
|
|
|
// Create the sheet6 list box.
|
|
if (!m_sheet6.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET6 ))
|
|
{
|
|
TRACE0( "Failed to create sheet6.\n" );
|
|
return FALSE;
|
|
}
|
|
m_sheet6.SetBackColor(GetXtremeColor(COLOR_WINDOW));
|
|
m_sheet6.SetFont(&XTAuxData().font);
|
|
m_sheet6.AddString(_T("SQL Debugging Tab Output..."));
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet7()
|
|
{
|
|
// views must be created dynamically because they are destroyed during
|
|
// window destruction
|
|
CCreateContext cc;
|
|
::ZeroMemory(&cc, sizeof(cc));
|
|
cc.m_pCurrentDoc = NULL;
|
|
|
|
m_pSheet7 = (CExcelFormView*)RUNTIME_CLASS(CExcelFormView)->CreateObject();
|
|
if (!m_pSheet7 || !((CWnd *)m_pSheet7)->Create(
|
|
NULL, NULL, WS_CHILD, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET7, &cc))
|
|
{
|
|
TRACE0( "Failed to create sheet7.\n" );
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CExcelTabDlg::CreateSheet8()
|
|
{
|
|
// Create the Test Scroll View
|
|
CCreateContext cc;
|
|
::ZeroMemory(&cc, sizeof(cc));
|
|
cc.m_pCurrentDoc = NULL;
|
|
|
|
m_pSheet8 = (CExcelScrollView*)RUNTIME_CLASS(CExcelScrollView)->CreateObject();
|
|
if (!m_pSheet8 || !((CWnd *)m_pSheet8)->Create( NULL, NULL, WS_CHILD |
|
|
WS_VSCROLL|WS_HSCROLL, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET8, &cc))
|
|
{
|
|
TRACE0( "Failed to create m_pSheet8.\n" );
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
void CExcelTabDlg::OnProperties()
|
|
{
|
|
CExcelTabProperties dlg(m_bBottom, m_bHasArrows, m_bHasHomeEnd, m_bHScroll, this);
|
|
if (dlg.DoModal() == IDOK)
|
|
{
|
|
}
|
|
}
|
|
|
|
void CExcelTabDlg::UpdateExcelTab()
|
|
{
|
|
UpdateTabsStyle();
|
|
m_pExcelTabCtrl->SetTabStyle(m_dwTabStyle);
|
|
}
|
|
|
|
BOOL CExcelTabDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
|
{
|
|
// TODO: Add your specialized code here and/or call the base class
|
|
if (IDC_EXCEL_TABCTRL == (UINT)wParam)
|
|
{
|
|
NMHDR* pNMHDR = (NMHDR*)lParam;
|
|
|
|
switch(pNMHDR->code)
|
|
{
|
|
case TCN_SELCHANGING:
|
|
break;
|
|
|
|
case TCN_SELCHANGE:
|
|
// For unmanaged views, you can use something like this:
|
|
// SelectTabView(m_pFlatTabCtrl->GetCurSel());
|
|
break;
|
|
}
|
|
}
|
|
|
|
return CXTResizeDialog::OnNotify(wParam, lParam, pResult);
|
|
}
|