ExcelTabDlg.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:16k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // ExcelTabDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ExcelTab.h"
  5. #include "ExcelTabDlg.h"
  6. #include "ExcelTabProperties.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CExcelTabDlg dialog
  14. CExcelTabDlg::CExcelTabDlg(CWnd* pParent /*=NULL*/)
  15. : CXTResizeDialog(CExcelTabDlg::IDD, pParent)
  16. , m_dwTabStyle(0)
  17. , m_bBottom(TRUE)
  18. , m_bHasArrows(TRUE)
  19. , m_bHasHomeEnd(FALSE)
  20. , m_bHScroll(TRUE)
  21. , m_pSheet7(NULL)
  22. , m_pSheet8(NULL)
  23. , m_pExcelTabCtrl(NULL)
  24. {
  25. //{{AFX_DATA_INIT(CExcelTabDlg)
  26. //}}AFX_DATA_INIT
  27. UpdateTabsStyle();
  28. // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
  29. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  30. }
  31. void CExcelTabDlg::DoDataExchange(CDataExchange* pDX)
  32. {
  33. CXTResizeDialog::DoDataExchange(pDX);
  34. //{{AFX_DATA_MAP(CExcelTabDlg)
  35. DDX_Control(pDX, IDC_BORDER_TAB, m_staticBorder);
  36. //}}AFX_DATA_MAP
  37. }
  38. BEGIN_MESSAGE_MAP(CExcelTabDlg, CXTResizeDialog)
  39. //{{AFX_MSG_MAP(CExcelTabDlg)
  40. ON_WM_SYSCOMMAND()
  41. ON_WM_PAINT()
  42. ON_WM_QUERYDRAGICON()
  43. ON_WM_DESTROY()
  44. ON_BN_CLICKED(IDC_PROPERTIES, OnProperties)
  45. //}}AFX_MSG_MAP
  46. END_MESSAGE_MAP()
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CExcelTabDlg message handlers
  49. BOOL CExcelTabDlg::OnInitDialog()
  50. {
  51. CXTResizeDialog::OnInitDialog();
  52. // Add "About..." menu item to system menu.
  53. // IDM_ABOUTBOX must be in the system command range.
  54. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  55. ASSERT(IDM_ABOUTBOX < 0xF000);
  56. CMenu* pSysMenu = GetSystemMenu(FALSE);
  57. if (pSysMenu != NULL)
  58. {
  59. CString strAboutMenu;
  60. strAboutMenu.LoadString(IDS_ABOUTBOX);
  61. if (!strAboutMenu.IsEmpty())
  62. {
  63. pSysMenu->AppendMenu(MF_SEPARATOR);
  64. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  65. }
  66. }
  67. // Set the icon for this dialog.  The framework does this automatically
  68. //  when the application's main window is not a dialog
  69. SetIcon(m_hIcon, TRUE); // Set big icon
  70. SetIcon(m_hIcon, FALSE); // Set small icon
  71. // Set control resizing.
  72. SetResize(IDC_BORDER_TAB, SZ_TOP_LEFT,     SZ_BOTTOM_RIGHT);
  73. SetResize(IDC_PROPERTIES, SZ_BOTTOM_LEFT,  SZ_BOTTOM_LEFT);
  74. SetResize(IDOK,           SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);
  75. SetResize(IDCANCEL,       SZ_BOTTOM_RIGHT, SZ_BOTTOM_RIGHT);
  76. // Create  the flat tab control.
  77. CalcTabRect();
  78. CreateExcelTab();
  79. // Load window placement
  80. LoadPlacement(_T("CExcelTabDlg"));
  81. return TRUE;  // return TRUE  unless you set the focus to a control
  82. }
  83. void CExcelTabDlg::OnSysCommand(UINT nID, LPARAM lParam)
  84. {
  85. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  86. {
  87. CAboutDlg dlgAbout;
  88. dlgAbout.DoModal();
  89. }
  90. else
  91. {
  92. CXTResizeDialog::OnSysCommand(nID, lParam);
  93. }
  94. }
  95. // If you add a minimize button to your dialog, you will need the code below
  96. //  to draw the icon.  For MFC applications using the document/view model,
  97. //  this is automatically done for you by the framework.
  98. void CExcelTabDlg::OnPaint() 
  99. {
  100. if (IsIconic())
  101. {
  102. CPaintDC dc(this); // device context for painting
  103. SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
  104. // Center icon in client rectangle
  105. int cxIcon = GetSystemMetrics(SM_CXICON);
  106. int cyIcon = GetSystemMetrics(SM_CYICON);
  107. CRect rect;
  108. GetClientRect(&rect);
  109. int x = (rect.Width() - cxIcon + 1) / 2;
  110. int y = (rect.Height() - cyIcon + 1) / 2;
  111. // Draw the icon
  112. dc.DrawIcon(x, y, m_hIcon);
  113. }
  114. else
  115. {
  116. CXTResizeDialog::OnPaint();
  117. }
  118. }
  119. // The system calls this to obtain the cursor to display while the user drags
  120. //  the minimized window.
  121. HCURSOR CExcelTabDlg::OnQueryDragIcon()
  122. {
  123. return (HCURSOR) m_hIcon;
  124. }
  125. void CExcelTabDlg::OnDestroy() 
  126. {
  127. CXTResizeDialog::OnDestroy();
  128. // Save window placement
  129. SavePlacement(_T("CExcelTabDlg"));
  130. if (::IsWindow(m_pSheet7->GetSafeHwnd()))
  131. m_pSheet7->DestroyWindow();
  132. if (::IsWindow(m_pSheet8->GetSafeHwnd()))
  133. m_pSheet8->DestroyWindow();
  134. SAFE_DELETE(m_pExcelTabCtrl);
  135. }
  136. void CExcelTabDlg::UpdateTabsStyle()
  137. {
  138. DWORD dwNewStyle = 0;
  139. if (m_bHasHomeEnd)
  140. {
  141. dwNewStyle |= FTS_XT_HASHOMEEND;
  142. m_bHasArrows = TRUE;
  143. }
  144. if (m_bBottom)
  145. dwNewStyle |= FTS_XT_BOTTOM;
  146. if (m_bHasArrows)
  147. dwNewStyle |= FTS_XT_HASARROWS;
  148. if (m_bHScroll)
  149. dwNewStyle |= FTS_XT_HSCROLL;
  150. dwNewStyle |= FTS_XT_TOOLTIPS;
  151. if (dwNewStyle != m_dwTabStyle)
  152. {
  153. m_dwTabStyle = dwNewStyle;
  154. }
  155. }
  156. void CExcelTabDlg::CalcTabRect()
  157. CXTPWindowRect rcBorder(&m_staticBorder);
  158. ScreenToClient(&rcBorder);
  159. // get the size of the thumb box in a horizontal scroll bar.
  160. int cy = ::GetSystemMetrics(SM_CXHTHUMB); // SM_CYHSCROLL
  161. CRect rTabCtrl = rcBorder;
  162. rTabCtrl.DeflateRect(2, 2);
  163. CRect rcCtrl = rcBorder;
  164. rcCtrl.DeflateRect(2, 1, 2, cy + 1);
  165. // Create  the flat tab control.
  166. m_rTabCtrl = rTabCtrl;
  167. }
  168. BOOL CExcelTabDlg::CreateExcelTab()
  169. {
  170. SetRedraw(FALSE);
  171. BOOL bResize = FALSE;
  172. int iSel = 0;
  173. CXTPEmptyRect rTab;
  174. RemoveResize(IDC_EXCEL_TABCTRL);
  175. m_pExcelTabCtrl = new CXTExcelTabCtrl();
  176. // Create  the flat tab control.
  177. if (!m_pExcelTabCtrl->Create(WS_CHILD|WS_VISIBLE|m_dwTabStyle,
  178. m_rTabCtrl, this, IDC_EXCEL_TABCTRL))
  179. {
  180. TRACE0( "Failed to create flattab controln" );
  181. return FALSE;
  182. }
  183. // set the tab control to have a static edge border.
  184. m_pExcelTabCtrl->ModifyStyleEx(NULL, WS_EX_STATICEDGE);
  185. if (!CreateSheet1()) return FALSE;
  186. if (!CreateSheet2()) return FALSE;
  187. if (!CreateSheet3()) return FALSE;
  188. if (!CreateSheet4()) return FALSE;
  189. if (!CreateSheet5()) return FALSE;
  190. if (!CreateSheet6()) return FALSE;
  191. if (!CreateSheet7()) return FALSE;
  192. if (!CreateSheet8()) return FALSE;
  193. // Insert tabs into the flat tab control.
  194. m_pExcelTabCtrl->InsertItem(0, _T("Build"),           &m_sheet1);
  195. m_pExcelTabCtrl->InsertItem(1, _T("Debug"),           &m_sheet2);
  196. m_pExcelTabCtrl->InsertItem(2, _T("Find in Files 1"), &m_sheet3);
  197. m_pExcelTabCtrl->InsertItem(3, _T("Find in Files 2"), &m_sheet4);
  198. m_pExcelTabCtrl->InsertItem(4, _T("Results"),         &m_sheet5);
  199. m_pExcelTabCtrl->InsertItem(5, _T("SQL Debugging"),   &m_sheet6);
  200. m_pExcelTabCtrl->InsertItem(6, _T("Form View"),       m_pSheet7);
  201. m_pExcelTabCtrl->InsertItem(7, _T("Scroll View"),     m_pSheet8);
  202. m_pExcelTabCtrl->SetTabBackColor(0, RGB(0x80,0x00,0x00));
  203. m_pExcelTabCtrl->SetTabTextColor(0, RGB(0xff,0xff,0xff));
  204. m_pExcelTabCtrl->SetSelTabBackColor(0, RGB(0xff,0x00,0x00));
  205. m_pExcelTabCtrl->SetSelTabTextColor(0, RGB(0xff,0xff,0xff));
  206. m_pExcelTabCtrl->SetWindowPos(&wndTop, 0, 0, 0, 0,
  207. SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE | SWP_FRAMECHANGED);
  208. // enable resizing for the flat tab control.
  209. SetResize(IDC_EXCEL_TABCTRL, SZ_TOP_LEFT, SZ_BOTTOM_RIGHT);
  210. if (bResize) {
  211. CXTResize::Size();
  212. }
  213. m_pExcelTabCtrl->SetCurSel(iSel);
  214. SetRedraw(TRUE);
  215. RedrawWindow(0,0, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_ALLCHILDREN);
  216. return TRUE;
  217. }
  218. BOOL CExcelTabDlg::CreateSheet1()
  219. {
  220. // Create the sheet1 list box.
  221. if (!m_sheet1.Create(WS_CHILD |
  222. LVS_REPORT | LVS_NOCOLUMNHEADER, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET1 ))
  223. {
  224. TRACE0( "Failed to create sheet1.n" );
  225. return FALSE;
  226. }
  227. ListView_SetExtendedListViewStyleEx(m_sheet1.m_hWnd,
  228. LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);
  229. m_sheet1.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  230. m_sheet1.InsertColumn(0, _T("Column"), LVCFMT_LEFT, 512);
  231. m_sheet1.InsertItem(0, _T("--------------------Configuration: ExcelTabDlg - Win32 Debug--------------------"));
  232. m_sheet1.InsertItem(1, _T("Compiling resources..."));
  233. m_sheet1.InsertItem(2, _T("Compiling..."));
  234. m_sheet1.InsertItem(3, _T("StdAfx.cpp"));
  235. m_sheet1.InsertItem(5, _T("Compiling..."));
  236.     m_sheet1.InsertItem(6, _T("ExcelEditCtrl.cpp"));
  237.     m_sheet1.InsertItem(7, _T("ExcelFormView.cpp"));
  238.     m_sheet1.InsertItem(8, _T("ExcelListCtrl.cpp"));
  239.     m_sheet1.InsertItem(9, _T("ExcelScrollView.cpp"));
  240.     m_sheet1.InsertItem(10, _T("ExcelTab.cpp"));
  241.     m_sheet1.InsertItem(11, _T("ExcelTabDlg.cpp"));
  242.     m_sheet1.InsertItem(12, _T("ExcelTabProperties.cpp"));
  243.     m_sheet1.InsertItem(13, _T("ExcelTabDlg.cpp"));
  244.     m_sheet1.InsertItem(14, _T("ExcelTabProperties.cpp"));
  245.     m_sheet1.InsertItem(15, _T("ExcelTreeCtrl.cpp"));
  246.     m_sheet1.InsertItem(16, _T("MainFrm.cpp"));
  247. m_sheet1.InsertItem(17, _T("Generating Code..."));
  248. m_sheet1.InsertItem(18, _T("Linking..."));
  249. m_sheet1.InsertItem(19, _T(""));
  250. m_sheet1.InsertItem(20, _T("ExcelTabDialog.exe - 0 error(s), 0 warning(s)"));
  251. CXTLogFont lf;
  252. XTAuxData().font.GetLogFont(&lf);
  253. STRCPY_S(lf.lfFaceName, LF_FACESIZE, _T("Courier New"));
  254. m_font.CreateFontIndirect(&lf);
  255. m_sheet1.SetFont(&m_font);
  256. return TRUE;
  257. }
  258. BOOL CExcelTabDlg::CreateSheet2()
  259. {
  260. // Create the sheet2 list box.
  261. if (!m_sheet2.Create( WS_CHILD | WS_TABSTOP | WS_CLIPCHILDREN |
  262. WS_HSCROLL | WS_VSCROLL | ES_MULTILINE, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET2 ))
  263. {
  264. TRACE0( "Failed to create sheet2.n" );
  265. return FALSE;
  266. }
  267. m_sheet2.SetFont(m_sheet1.GetFont());
  268. m_sheet2.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  269. m_sheet2.SetWindowText(
  270. _T("Loaded 'C:\WINNT\System32\ntdll.dll', no matching symbolic information found.rn")
  271. _T("Loaded symbols for 'C:\WINNT\system32\MFC42D.DLL'rn")
  272. _T("Loaded symbols for 'C:\WINNT\system32\MSVCRTD.DLL'rn")
  273. _T("Loaded 'C:\WINNT\system32\KERNEL32.DLL', no matching symbolic information found.rn")
  274. _T("Loaded 'C:\WINNT\system32\GDI32.DLL', no matching symbolic information found.rn")
  275. _T("Loaded 'C:\WINNT\system32\USER32.DLL', no matching symbolic information found.rn")
  276. _T("Loaded 'C:\WINNT\system32\ADVAPI32.DLL', no matching symbolic information found.rn")
  277. _T("Loaded 'C:\WINNT\system32\rpcrt4.dll', no matching symbolic information found.rn")
  278. _T("Loaded 'C:\WINNT\system32\SHELL32.DLL', no matching symbolic information found.rn")
  279. _T("Loaded 'C:\WINNT\system32\shlwapi.dll', no matching symbolic information found.rn")
  280. _T("Loaded 'C:\WINNT\system32\comctl32.dll', no matching symbolic information found.rn")
  281. _T("Loaded symbols for 'C:\WINNT\system32\MFCO42D.DLL'rn")
  282. _T("Loaded 'C:\WINNT\system32\OLE32.DLL', no matching symbolic information found.rn")
  283. _T("Loaded 'C:\WINNT\system32\OLEAUT32.DLL', no matching symbolic information found.rn")
  284. _T("Loaded 'C:\WINNT\system32\lpk.dll', no matching symbolic information found.rn")
  285. _T("Loaded 'C:\WINNT\system32\usp10.dll', no matching symbolic information found.rn")
  286. _T("XTTOOLKIT_DLL.DLL Initializing!rn")
  287. _T("Loaded 'C:\WINNT\system32\indicdll.dll', no matching symbolic information found.rn")
  288. _T("Loaded 'C:\WINNT\system32\imm32.dll', no matching symbolic information found.rn")
  289. _T("The program 'D:\Controls\Bin\ExcelTabDlg.exe' has exited with code 0 (0x0).rn"));
  290. return TRUE;
  291. }
  292. BOOL CExcelTabDlg::CreateSheet3()
  293. {
  294. // Create the sheet3 list box.
  295. if (!m_sheet3.Create(
  296. WS_CHILD | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_VSCROLL,
  297. CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET3 ))
  298. {
  299. TRACE0( "Failed to create sheet3.n" );
  300. return FALSE;
  301. }
  302. m_sheet3.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  303. HTREEITEM file;
  304. file = m_sheet3.InsertItem(_T("D:\Controls\Samples\ExcelTabDlg\EditCtrlForFlatTab.cpp"));
  305. m_sheet3.InsertItem(_T("Line 92:            pSB->Create(WS_CHILD, CRect(0, 0, 0, 0), (CWnd *)this, 0)"), 0, 0, file);
  306. file = m_sheet3.InsertItem(_T("D:\Controls\Samples\ExcelTabDlg\ExcelTabDlg.rc"));
  307. m_sheet3.InsertItem(_T("Line 190:STYLE WS_CHILD"), 0, 0, file);
  308. file = m_sheet3.InsertItem(_T("D:\Controls\Samples\ExcelTabDlg\ExcelTabDlg.cpp"));
  309. m_sheet3.InsertItem(_T("Line 92:            pSB->Create(WS_CHILD, CRect(0, 0, 0, 0), (CWnd *)this, 0)"), 0, 0, file);
  310. m_sheet3.InsertItem(_T("Line 265:   if (!m_pExcelTabDlg->Create(WS_CHILD|WS_VISIBLE|m_dwTabStyle,"), 0, 0, file);
  311. m_sheet3.InsertItem(_T("Line 293:   if (!m_sheet1.Create(WS_CHILD |  "), 0, 0, file);
  312. m_sheet3.InsertItem(_T("Line 303:   if (!m_sheet2.Create( WS_CHILD | WS_TABSTOP | WS_CLIPCHILDREN |"), 0, 0, file);
  313. m_sheet3.InsertItem(_T("Line 312:   DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;"), 0, 0, file);
  314. m_sheet3.InsertItem(_T("Line 316:       WS_CHILD | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | WS_VSCROLL, "), 0, 0, file);
  315. m_sheet3.InsertItem(_T("Line 348:        !((CWnd *)m_pSheet7)->Create(NULL, NULL, WS_CHILD, "), 0, 0, file);
  316. file = m_sheet3.InsertItem(_T("D:\Controls\Samples\ExcelTabDlg\SampleFormView.cpp"));
  317. m_sheet3.InsertItem(_T("Line 79:    m_ScrollBarH.Create(WS_CHILD, CRect(0, 0, 0, 0), this, 0);"), 0, 0, file);
  318. return TRUE;
  319. }
  320. BOOL CExcelTabDlg::CreateSheet4()
  321. {
  322. // Define the default style for the output list boxes.
  323. DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
  324. // Create the sheet4 list box.
  325. if (!m_sheet4.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET4 ))
  326. {
  327. TRACE0( "Failed to create sheet4.n" );
  328. return FALSE;
  329. }
  330. m_sheet4.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  331. m_sheet4.SetFont(&XTAuxData().font);
  332. m_sheet4.AddString(_T("Find in Files 2 Tab Output..."));
  333. return TRUE;
  334. }
  335. BOOL CExcelTabDlg::CreateSheet5()
  336. {
  337. // Define the default style for the output list boxes.
  338. DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
  339. // Create the sheet5 list box.
  340. if (!m_sheet5.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET5 ))
  341. {
  342. TRACE0( "Failed to create sheet5.n" );
  343. return FALSE;
  344. }
  345. m_sheet5.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  346. m_sheet5.SetFont(&XTAuxData().font);
  347. m_sheet5.AddString(_T("Results Tab Output..."));
  348. return TRUE;
  349. }
  350. BOOL CExcelTabDlg::CreateSheet6()
  351. {
  352. // Define the default style for the output list boxes.
  353. DWORD dwStyle = WS_CHILD | LBS_NOINTEGRALHEIGHT | WS_TABSTOP | WS_VSCROLL;
  354. // Create the sheet6 list box.
  355. if (!m_sheet6.Create( dwStyle, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET6 ))
  356. {
  357. TRACE0( "Failed to create sheet6.n" );
  358. return FALSE;
  359. }
  360. m_sheet6.SetBackColor(GetXtremeColor(COLOR_WINDOW));
  361. m_sheet6.SetFont(&XTAuxData().font);
  362. m_sheet6.AddString(_T("SQL Debugging Tab Output..."));
  363. return TRUE;
  364. }
  365. BOOL CExcelTabDlg::CreateSheet7()
  366. {
  367. // views must be created dynamically because they are destroyed during
  368. // window destruction
  369. CCreateContext cc;
  370. ::ZeroMemory(&cc, sizeof(cc));
  371. cc.m_pCurrentDoc = NULL;
  372. m_pSheet7 = (CExcelFormView*)RUNTIME_CLASS(CExcelFormView)->CreateObject();
  373. if (!m_pSheet7  || !((CWnd *)m_pSheet7)->Create(
  374. NULL, NULL, WS_CHILD, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET7, &cc))
  375. {
  376. TRACE0( "Failed to create sheet7.n" );
  377. return FALSE;
  378. }
  379. return TRUE;
  380. }
  381. BOOL CExcelTabDlg::CreateSheet8()
  382. {
  383. // Create the Test Scroll View
  384. CCreateContext cc;
  385. ::ZeroMemory(&cc, sizeof(cc));
  386. cc.m_pCurrentDoc = NULL;
  387. m_pSheet8 = (CExcelScrollView*)RUNTIME_CLASS(CExcelScrollView)->CreateObject();
  388. if (!m_pSheet8  || !((CWnd *)m_pSheet8)->Create( NULL, NULL, WS_CHILD |
  389. WS_VSCROLL|WS_HSCROLL, CXTPEmptyRect(), m_pExcelTabCtrl, IDC_SHEET8, &cc))
  390. {
  391. TRACE0( "Failed to create m_pSheet8.n" );
  392. return FALSE;
  393. }
  394. return TRUE;
  395. }
  396. void CExcelTabDlg::OnProperties() 
  397. {
  398. CExcelTabProperties dlg(m_bBottom, m_bHasArrows, m_bHasHomeEnd, m_bHScroll, this);
  399. if (dlg.DoModal() == IDOK)
  400. {
  401. }
  402. }
  403. void CExcelTabDlg::UpdateExcelTab()
  404. {
  405. UpdateTabsStyle();
  406. m_pExcelTabCtrl->SetTabStyle(m_dwTabStyle);
  407. }
  408. BOOL CExcelTabDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
  409. {
  410. // TODO: Add your specialized code here and/or call the base class
  411. if (IDC_EXCEL_TABCTRL == (UINT)wParam)
  412. {
  413. NMHDR* pNMHDR = (NMHDR*)lParam;
  414. switch(pNMHDR->code)
  415. {
  416. case TCN_SELCHANGING:
  417. break;
  418. case TCN_SELCHANGE:
  419. // For unmanaged views, you can use something like this:
  420. //          SelectTabView(m_pFlatTabCtrl->GetCurSel());
  421. break;
  422. }
  423. }
  424. return CXTResizeDialog::OnNotify(wParam, lParam, pResult);
  425. }