PageTabContainers.cpp
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:22k
源码类别:

界面编程

开发平台:

Visual C++

  1. // PageTabContainers.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "profuis_controls.h"
  5. #include "PageTabContainers.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. #if (!defined __EXT_MFC_NO_TAB_PAGECONTAINER_CTRL && !defined __EXT_MFC_NO_TAB_PAGECONTAINER_FLAT_CTRL )
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CPageTabContainers dialog
  14. CPageTabContainers::CPageTabContainers(CWnd* pParent /*=NULL*/)
  15. : CPageBase(CPageTabContainers::IDD, pParent)
  16. , m_bInitComplete( false )
  17. , m_wndListBox0( true )
  18. , m_wndListBox1( true )
  19. , m_wndEditCtrl0( true )
  20. , m_wndEditCtrl1( true )
  21. , m_wndTreeCtrl0( true )
  22. , m_wndTreeCtrl1( true )
  23. {
  24. //{{AFX_DATA_INIT(CPageTabContainers)
  25. m_nShift = 4;
  26. m_nSize = 16;
  27. //}}AFX_DATA_INIT
  28. }
  29. void CPageTabContainers::DoDataExchange(CDataExchange* pDX)
  30. {
  31. CPageBase::DoDataExchange(pDX);
  32. //{{AFX_DATA_MAP(CPageTabContainers)
  33. DDX_Control(pDX, IDC_EDIT_SIZE, m_wndSize);
  34. DDX_Control(pDX, IDC_EDIT_SHIFT, m_wndShift);
  35. DDX_Control(pDX, IDC_CHECK_SHOW_HOME, m_CheckShowHome);
  36. DDX_Control(pDX, IDC_CHECK_SHOW_END, m_CheckShowEnd);
  37. DDX_Control(pDX, IDC_CHECK_ITEM_DRAGGING, m_chkItemDragging);
  38. DDX_Control(pDX, IDC_CHECK_SHOW_TAB_LIST, m_chkShowTabList);
  39. DDX_Control(pDX, IDC_CHECK_ENABLE_TAB_LIST, m_chkEnableTabList);
  40. DDX_Control(pDX, IDC_STATIC_SIZE, m_StaticSize);
  41. DDX_Control(pDX, IDC_STATIC_SHIFT, m_StaticShift);
  42. DDX_Control(pDX, IDC_STATIC_ORIENTATION, m_StaticOrientation);
  43. DDX_Control(pDX, IDC_SPIN_SIZE, m_SpinSize);
  44. DDX_Control(pDX, IDC_SPIN_SHIFT, m_SpinShift);
  45. DDX_Control(pDX, IDC_COMBO_ORIENTATION, m_Orientation);
  46. DDX_Control(pDX, IDC_CHECK_SHOW_HELP, m_chkShowHelp);
  47. DDX_Control(pDX, IDC_CHECK_SHOW_CLOSE, m_chkShowClose);
  48. DDX_Control(pDX, IDC_CHECK_SHOW_BORDERS, m_chkShowBorders);
  49. DDX_Control(pDX, IDC_CHECK_INVERT_VERT_FONT, m_chkInvertVertFont);
  50. DDX_Control(pDX, IDC_CHECK_INCLINE_BEFORE, m_chkInclineBefore);
  51. DDX_Control(pDX, IDC_CHECK_INCLINE_AFTER, m_chkInclineAfter);
  52. DDX_Control(pDX, IDC_CHECK_FULL_WIDTHS, m_chkFullWidths);
  53. DDX_Control(pDX, IDC_CHECK_FOCUS_ON_HOVER, m_chkFocusOnHover);
  54. DDX_Control(pDX, IDC_CHECK_EQUAL_WIDTHS, m_chkEqualWidths);
  55. DDX_Control(pDX, IDC_CHECK_ENABLE_HELP, m_chkEnableHelp);
  56. DDX_Control(pDX, IDC_CHECK_ENABLE_CLOSE, m_chkEnableClose);
  57. DDX_Control(pDX, IDC_CHECK_CENTER_TEXT, m_chkCenterText);
  58. DDX_Control(pDX, IDC_CHECK_BOLD_SELECTION, m_chkBoldSelection);
  59. DDX_Control(pDX, IDC_CHECK_AUTOHIDE_SCROLL, m_chkAutoHideScroll);
  60. DDX_Text(pDX, IDC_EDIT_SHIFT, m_nShift);
  61. DDV_MinMaxInt(pDX, m_nShift, 0, 25);
  62. DDX_Text(pDX, IDC_EDIT_SIZE, m_nSize);
  63. DDV_MinMaxInt(pDX, m_nSize, 13, 40);
  64. //}}AFX_DATA_MAP
  65. DDX_Control( pDX, ID_TABCTRL_FLAT, m_wndTabPageContainerFlat );
  66. DDX_Control( pDX, ID_TABCTRL, m_wndTabPageContainer );
  67. }
  68. BEGIN_MESSAGE_MAP(CPageTabContainers, CPageBase)
  69. //{{AFX_MSG_MAP(CPageTabContainers)
  70. ON_CBN_SELENDOK(IDC_COMBO_ORIENTATION, OnSelendokComboOrientation)
  71. //}}AFX_MSG_MAP
  72. END_MESSAGE_MAP()
  73. /////////////////////////////////////////////////////////////////////////////
  74. // CPageTabContainers message handlers
  75. BOOL CPageTabContainers::OnInitDialog() 
  76. {
  77. CPageBase::OnInitDialog();
  78. m_wndTabPageContainer.ModifyStyle( 0, WS_TABSTOP );
  79. m_wndTabPageContainer.ModifyStyleEx( 0, WS_EX_CONTROLPARENT );
  80. m_wndTabPageContainer.CloseOnTabsSet();
  81. m_wndTabPageContainerFlat.ModifyStyle( 0, WS_TABSTOP );
  82. m_wndTabPageContainerFlat.ModifyStyleEx( 0, WS_EX_CONTROLPARENT );
  83. AddAnchor( ID_TABCTRL_FLAT, __RDA_LT, CSize(100,50) );
  84. AddAnchor( ID_TABCTRL, CSize(0,50), __RDA_RB );
  85. AddAnchor( IDC_CHECK_SHOW_BORDERS, CSize( 0,  0) );
  86. AddAnchor( IDC_CHECK_EQUAL_WIDTHS, CSize( 0,  7) );
  87. AddAnchor( IDC_CHECK_FULL_WIDTHS, CSize( 0,  14) );
  88. AddAnchor( IDC_CHECK_CENTER_TEXT, CSize( 0,  21) );
  89. AddAnchor( IDC_CHECK_INVERT_VERT_FONT, CSize( 0,  28) );
  90. AddAnchor( IDC_CHECK_BOLD_SELECTION, CSize( 0,  35) );
  91. AddAnchor( IDC_CHECK_SHOW_CLOSE, CSize( 0,  42) );
  92. AddAnchor( IDC_CHECK_ENABLE_CLOSE, CSize( 0,  42) );
  93. AddAnchor( IDC_CHECK_SHOW_HELP, CSize( 0,  49) );
  94. AddAnchor( IDC_CHECK_ENABLE_HELP, CSize( 0,  49) );
  95. AddAnchor( IDC_CHECK_SHOW_TAB_LIST, CSize( 0,  56) );
  96. AddAnchor( IDC_CHECK_ENABLE_TAB_LIST, CSize( 0,  56) );
  97. AddAnchor( IDC_CHECK_AUTOHIDE_SCROLL, CSize( 0,  63) );
  98. AddAnchor( IDC_CHECK_SHOW_HOME, CSize( 0,  70) );
  99. AddAnchor( IDC_CHECK_SHOW_END, CSize( 0,  77) );
  100. AddAnchor( IDC_CHECK_FOCUS_ON_HOVER, CSize( 0,  84) );
  101. AddAnchor( IDC_CHECK_ITEM_DRAGGING, CSize( 0,  100) );
  102. //////////////////////////////////////////////////////////////////////////
  103. HICON hIconTree = (HICON)::LoadImage( 
  104. ::AfxGetInstanceHandle(), 
  105. MAKEINTRESOURCE(IDI_TREE), 
  106. IMAGE_ICON, 
  107. 16, 16, 0
  108. );
  109. HICON hIconEdit = (HICON)::LoadImage( 
  110. ::AfxGetInstanceHandle(), 
  111. MAKEINTRESOURCE(IDI_EDIT), 
  112. IMAGE_ICON, 
  113. 16, 16, 0
  114. );
  115. HICON hIconColor = (HICON)::LoadImage( 
  116. ::AfxGetInstanceHandle(), 
  117. MAKEINTRESOURCE(IDI_COLOR), 
  118. IMAGE_ICON, 
  119. 16, 16, 0
  120. );
  121. if( !m_wndColorCtrl0.Create(
  122. _T("BUTTON"),
  123. _T(""),
  124. WS_CHILD|WS_VISIBLE,
  125. CRect(0,0,0,0),
  126. &m_wndTabPageContainerFlat,
  127. UINT(IDC_STATIC)))
  128. {
  129. TRACE0("Failed to create m_wndColorCtrl0n");
  130. return -1; // fail to create
  131. }
  132. m_wndTabPageDialog0.SetAutoSubclassChildControls();
  133. if( ! m_wndTabPageDialog0.Create( IDD_DIALOG_FOR_TAB_PAGE, &m_wndTabPageContainerFlat ) )
  134. {
  135. TRACE0("Failed to create m_wndTabPageDialog0n");
  136. return -1; // fail to create
  137. }
  138. m_wndTabPageDialog0.ModifyStyle( 0, WS_TABSTOP|DS_CONTROL );
  139. m_wndTabPageDialog0.ModifyStyleEx( 0, WS_EX_CONTROLPARENT );
  140. m_wndTabPageDialog0.ShowSizeGrip( FALSE );
  141. m_wndTabPageDialog0.AddAnchor( IDC_EDIT_IN_TAB_PAGE_DIALOG1, __RDA_LT, __RDA_RT );
  142. m_wndTabPageDialog0.AddAnchor( IDC_EDIT_IN_TAB_PAGE_DIALOG2, __RDA_LT, __RDA_RT );
  143. InitListBoxCtrl(&m_wndListBox0, &m_wndTabPageContainerFlat);
  144. InitEditCtrl(&m_wndEditCtrl0, &m_wndTabPageContainerFlat);
  145. InitTreeCtrl(&m_wndTreeCtrl0, &m_wndTabPageContainerFlat);
  146. VERIFY( m_wndTabPageContainerFlat.PageInsert( &m_wndColorCtrl0, _T("ColorCtrl"), hIconColor ) );
  147. VERIFY( m_wndTabPageContainerFlat.PageInsert( &m_wndListBox0, _T("ListBox") ) );
  148. VERIFY( m_wndTabPageContainerFlat.PageInsert( &m_wndTreeCtrl0, _T("TreeCtrl"), hIconTree ) );
  149. VERIFY( m_wndTabPageContainerFlat.PageInsert( &m_wndEditCtrl0, _T("EditCtrl"), hIconEdit ) );
  150. VERIFY( m_wndTabPageContainerFlat.PageInsert( &m_wndTabPageDialog0, _T("Dialog") ) );
  151. //////////////////////////////////////////////////////////////////////////
  152. if( !m_wndColorCtrl1.Create(
  153. _T("BUTTON"),
  154. _T(""),
  155. WS_CHILD|WS_VISIBLE,
  156. CRect(0,0,0,0),
  157. &m_wndTabPageContainer,
  158. UINT(IDC_STATIC)))
  159. {
  160. TRACE0("Failed to create m_wndColorCtrl1n");
  161. return -1; // fail to create
  162. }
  163. m_wndTabPageDialog1.SetAutoSubclassChildControls();
  164. if( ! m_wndTabPageDialog1.Create( IDD_DIALOG_FOR_TAB_PAGE, &m_wndTabPageContainer ) )
  165. {
  166. TRACE0("Failed to create m_wndTabPageDialog1n");
  167. return -1; // fail to create
  168. }
  169. m_wndTabPageDialog1.ModifyStyle( 0, WS_TABSTOP|DS_CONTROL );
  170. m_wndTabPageDialog1.ModifyStyleEx( 0, WS_EX_CONTROLPARENT );
  171. m_wndTabPageDialog1.ShowSizeGrip( FALSE );
  172. m_wndTabPageDialog1.AddAnchor( IDC_EDIT_IN_TAB_PAGE_DIALOG1, __RDA_LT, __RDA_RT );
  173. m_wndTabPageDialog1.AddAnchor( IDC_EDIT_IN_TAB_PAGE_DIALOG2, __RDA_LT, __RDA_RT );
  174. InitListBoxCtrl(&m_wndListBox1, &m_wndTabPageContainer);
  175. InitEditCtrl(&m_wndEditCtrl1, &m_wndTabPageContainer);
  176. InitTreeCtrl(&m_wndTreeCtrl1, &m_wndTabPageContainer);
  177. VERIFY( m_wndTabPageContainer.PageInsert( &m_wndColorCtrl1, _T("ColorCtrl"), hIconColor ) );
  178. VERIFY( m_wndTabPageContainer.PageInsert( &m_wndListBox1, _T("ListBox") ) );
  179. VERIFY( m_wndTabPageContainer.PageInsert( &m_wndTreeCtrl1, _T("TreeCtrl"), hIconTree ) );
  180. VERIFY( m_wndTabPageContainer.PageInsert( &m_wndEditCtrl1, _T("EditCtrl"), hIconEdit ) );
  181. VERIFY( m_wndTabPageContainer.PageInsert( &m_wndTabPageDialog1, _T("Dialog") ) );
  182. //////////////////////////////////////////////////////////////////////////
  183. m_wndTabPageContainerFlat.CenterTextSet( true );
  184. m_wndTabPageContainer.CenterTextSet( true );
  185. m_wndTabPageContainerFlat.SelectionBoldSet( true );
  186. m_wndTabPageContainer.SelectionBoldSet( true );
  187. ::CheckDlgButton( 
  188. this->GetSafeHwnd(), 
  189. IDC_CHECK_INCLINE_AFTER, 
  190. m_wndTabPageContainerFlat.ItemsHasInclineAfterGet()
  191. ? BST_CHECKED
  192. : BST_UNCHECKED
  193. );
  194. ::CheckDlgButton( 
  195. this->GetSafeHwnd(), 
  196. IDC_CHECK_INCLINE_BEFORE, 
  197. m_wndTabPageContainerFlat.ItemsHasInclineBeforeGet()
  198. ? BST_CHECKED
  199. : BST_UNCHECKED
  200. );
  201. ::CheckDlgButton( 
  202. this->GetSafeHwnd(), 
  203. IDC_CHECK_EQUAL_WIDTHS, 
  204. m_wndTabPageContainerFlat.EqualWidthsGet()
  205. ? BST_CHECKED
  206. : BST_UNCHECKED
  207. );
  208. ::CheckDlgButton( 
  209. this->GetSafeHwnd(), 
  210. IDC_CHECK_FULL_WIDTHS, 
  211. m_wndTabPageContainerFlat.FullWidthGet()
  212. ? BST_CHECKED
  213. : BST_UNCHECKED
  214. );
  215. ::CheckDlgButton( 
  216. this->GetSafeHwnd(), 
  217. IDC_CHECK_CENTER_TEXT, 
  218. m_wndTabPageContainerFlat.CenterTextGet()
  219. ? BST_CHECKED
  220. : BST_UNCHECKED
  221. );
  222. ::CheckDlgButton( 
  223. this->GetSafeHwnd(), 
  224. IDC_CHECK_INVERT_VERT_FONT, 
  225. m_wndTabPageContainerFlat.InvertVertFontGet()
  226. ? BST_CHECKED
  227. : BST_UNCHECKED
  228. );
  229. ::CheckDlgButton( 
  230. this->GetSafeHwnd(), 
  231. IDC_CHECK_BOLD_SELECTION, 
  232. m_wndTabPageContainerFlat.SelectionBoldGet()
  233. ? BST_CHECKED
  234. : BST_UNCHECKED
  235. );
  236. ::CheckDlgButton( 
  237. this->GetSafeHwnd(), 
  238. IDC_CHECK_SHOW_CLOSE, 
  239. m_wndTabPageContainerFlat.ShowBtnCloseGet()
  240. ? BST_CHECKED
  241. : BST_UNCHECKED
  242. );
  243. GetDlgItem( IDC_CHECK_ENABLE_CLOSE )->EnableWindow( 
  244. m_wndTabPageContainerFlat.ShowBtnCloseGet()
  245. );
  246. ::CheckDlgButton( 
  247. this->GetSafeHwnd(), 
  248. IDC_CHECK_ENABLE_CLOSE, 
  249. m_wndTabPageContainerFlat.EnabledBtnCloseGet()
  250. ? BST_CHECKED
  251. : BST_UNCHECKED
  252. );
  253. ::CheckDlgButton( 
  254. this->GetSafeHwnd(), 
  255. IDC_CHECK_SHOW_HELP, 
  256. m_wndTabPageContainerFlat.ShowBtnHelpGet()
  257. ? BST_CHECKED
  258. : BST_UNCHECKED
  259. );
  260. GetDlgItem( IDC_CHECK_ENABLE_HELP )->EnableWindow( 
  261. m_wndTabPageContainerFlat.ShowBtnHelpGet()
  262. );
  263. ::CheckDlgButton( 
  264. this->GetSafeHwnd(), 
  265. IDC_CHECK_ENABLE_HELP, 
  266. m_wndTabPageContainerFlat.EnabledBtnHelpGet()
  267. ? BST_CHECKED
  268. : BST_UNCHECKED
  269. );
  270. ::CheckDlgButton( 
  271. this->GetSafeHwnd(), 
  272. IDC_CHECK_SHOW_TAB_LIST, 
  273. m_wndTabPageContainerFlat.ShowBtnTabListGet()
  274. ? BST_CHECKED
  275. : BST_UNCHECKED
  276. );
  277. GetDlgItem( IDC_CHECK_ENABLE_TAB_LIST )->EnableWindow( 
  278. m_wndTabPageContainerFlat.ShowBtnTabListGet()
  279. );
  280. ::CheckDlgButton( 
  281. this->GetSafeHwnd(), 
  282. IDC_CHECK_ENABLE_TAB_LIST, 
  283. m_wndTabPageContainerFlat.EnabledBtnTabListGet()
  284. ? BST_CHECKED
  285. : BST_UNCHECKED
  286. );
  287. ::CheckDlgButton( 
  288. this->GetSafeHwnd(), 
  289. IDC_CHECK_AUTOHIDE_SCROLL, 
  290. m_wndTabPageContainerFlat.AutoHideScrollGet()
  291. ? BST_CHECKED
  292. : BST_UNCHECKED
  293. );
  294. ::CheckDlgButton( 
  295. this->GetSafeHwnd(), 
  296. IDC_CHECK_FOCUS_ON_HOVER, 
  297. m_wndTabPageContainerFlat.HoverFocusGet()
  298. ? BST_CHECKED
  299. : BST_UNCHECKED
  300. );
  301. ::CheckDlgButton( 
  302. this->GetSafeHwnd(), 
  303. IDC_CHECK_ITEM_DRAGGING, 
  304. m_wndTabPageContainerFlat.ItemDraggingGet()
  305. ? BST_CHECKED
  306. : BST_UNCHECKED
  307. );
  308. ::CheckDlgButton( 
  309. this->GetSafeHwnd(), 
  310. IDC_CHECK_SHOW_HOME, 
  311. m_wndTabPageContainerFlat.ShowBtnScrollHomeGet()
  312. ? BST_CHECKED
  313. : BST_UNCHECKED
  314. );
  315. ::CheckDlgButton( 
  316. this->GetSafeHwnd(), 
  317. IDC_CHECK_SHOW_END, 
  318. m_wndTabPageContainerFlat.ShowBtnScrollEndGet()
  319. ? BST_CHECKED
  320. : BST_UNCHECKED
  321. );
  322. m_Orientation.SelectString( 0, _T("Bottom") );
  323. m_wndTabPageContainerFlat.SetSize( m_nSize );
  324. m_wndTabPageContainerFlat.SetShift( m_nShift );
  325. m_SpinShift.SetRange(0,25);
  326. m_SpinSize.SetRange(13,40);
  327. UpdateData(0);
  328. m_bInitComplete = true;
  329. // sets Show Borders style
  330. ::CheckDlgButton( 
  331. this->GetSafeHwnd(), 
  332. IDC_CHECK_SHOW_BORDERS, 
  333. BST_CHECKED
  334. );
  335. SendMessage(
  336. WM_COMMAND,
  337. MAKEWPARAM(IDC_CHECK_SHOW_BORDERS,BN_CLICKED),
  338. (LPARAM)m_hWnd
  339. );
  340. // m_wndTabPageContainerFlat.GetSafeTabWindow()->ModifyTabWndStyleEx( 0, __ETWS_EX_CLOSE_ON_TABS );
  341. return TRUE;  // return TRUE unless you set the focus to a control
  342.               // EXCEPTION: OCX Property Pages should return FALSE
  343. }
  344. //////////////////////////////////////////////////////////////////////////
  345. BOOL CPageTabContainers::InitListBoxCtrl(CListBox *pListBox, CExtTabPageContainerWnd *pTabsContainer)
  346. {
  347. if( ! pListBox->Create(
  348. WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|WS_TABSTOP|LBS_NOINTEGRALHEIGHT,
  349. CRect(0,0,0,0), 
  350. pTabsContainer,
  351. UINT(IDC_STATIC)
  352. )
  353. )
  354. {
  355. TRACE0("Failed to create ListBoxn");
  356. return FALSE; // fail to create
  357. }
  358. pListBox->SetFont(
  359. CFont::FromHandle(
  360. (HFONT)::GetStockObject(DEFAULT_GUI_FONT)
  361. )
  362. );
  363. pListBox->AddString(_T("--------------------Configuration: TabCtrl - Win32 Debug--------------------"));
  364. pListBox->AddString(_T("Compiling resources..."));
  365. pListBox->AddString(_T("Compiling..."));
  366. pListBox->AddString(_T("StdAfx.cpp"));
  367. pListBox->AddString(_T("Prof-UIS multiple monitor support:"));
  368. pListBox->AddString(_T("     built-in"));
  369. pListBox->AddString(_T(" Automatically linking with ProfUIS library"));
  370. pListBox->AddString(_T("     (Professional User Interface Suite)"));
  371. pListBox->AddString(_T("Compiling..."));
  372. pListBox->AddString(_T("ExtTabCtrl.cpp"));
  373. pListBox->AddString(_T("TabCtrl.cpp"));
  374. pListBox->AddString(_T("TabCtrlDlg.cpp"));
  375. pListBox->AddString(_T("FlatTabCtrlPage.cpp"));
  376. pListBox->AddString(_T("ExtFlatTabCtrl.cpp"));
  377. pListBox->AddString(_T("Generating Code..."));
  378. pListBox->AddString(_T("Linking..."));
  379. pListBox->AddString(_T(""));
  380. pListBox->AddString(_T("TabCtrl.exe - 0 error(s), 0 warning(s)"));
  381. return TRUE;
  382. }
  383. //////////////////////////////////////////////////////////////////////////
  384. BOOL CPageTabContainers::InitEditCtrl(CEdit *pEditCtrl, CExtTabPageContainerWnd *pTabsContainer)
  385. {
  386. if( ! pEditCtrl->Create(
  387. WS_CHILD|WS_VISIBLE|WS_TABSTOP
  388. |WS_VSCROLL
  389. |ES_MULTILINE|ES_LEFT
  390. |ES_NOHIDESEL|ES_WANTRETURN
  391. |ES_AUTOVSCROLL
  392. ,
  393. CRect(0,0,0,0),
  394. pTabsContainer,
  395. UINT(IDC_STATIC)
  396. )
  397. )
  398. {
  399. TRACE0("Failed to create EditCtrln");
  400. return FALSE; // fail to create
  401. }
  402. pEditCtrl->SetFont(
  403. CFont::FromHandle(
  404. (HFONT)::GetStockObject(DEFAULT_GUI_FONT)
  405. )
  406. );
  407. pEditCtrl->SetWindowText( _T("  Type text here...") );
  408. return TRUE;
  409. }
  410. //////////////////////////////////////////////////////////////////////////
  411. BOOL CPageTabContainers::InitTreeCtrl(CTreeCtrl *pTreeCtrl, CExtTabPageContainerWnd *pTabsContainer)
  412. {
  413. if( ! pTreeCtrl->Create(
  414. WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_HSCROLL|WS_TABSTOP
  415. |TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT
  416. |TVS_INFOTIP|TVS_DISABLEDRAGDROP
  417. |TVS_SINGLEEXPAND|TVS_SHOWSELALWAYS
  418. ,
  419. CRect(0,0,0,0),
  420. pTabsContainer,
  421. UINT(IDC_STATIC)
  422. )
  423. )
  424. {
  425. TRACE0("Failed to create TreeCtrln");
  426. return FALSE; // fail to create
  427. }
  428. //pTreeCtrl->EnableWindow( FALSE );
  429. pTreeCtrl->SetFont(
  430. CFont::FromHandle(
  431. (HFONT)::GetStockObject(DEFAULT_GUI_FONT)
  432. )
  433. );
  434. for( int nTreeIdx0=0; nTreeIdx0<10; nTreeIdx0++ )
  435. {
  436. CString sTreeItemText;
  437. sTreeItemText.Format( _T("Item 1-%d"), nTreeIdx0+1 );
  438. HTREEITEM htiAtLevel0 =
  439. pTreeCtrl->InsertItem(
  440. LPCTSTR(sTreeItemText)
  441. );
  442. ASSERT( htiAtLevel0 != NULL );
  443. for( int nTreeIdx1=0; nTreeIdx1<5; nTreeIdx1++ )
  444. {
  445. sTreeItemText.Format( _T("Item 2-%d"), nTreeIdx1+1 );
  446. HTREEITEM htiAtLevel1 =
  447. pTreeCtrl->InsertItem(
  448. LPCTSTR(sTreeItemText),
  449. htiAtLevel0
  450. );
  451. ASSERT( htiAtLevel1 != NULL );
  452. for( int nTreeIdx2=0; nTreeIdx2<3; nTreeIdx2++ )
  453. {
  454. sTreeItemText.Format( _T("Item 3-%d"), nTreeIdx2+1 );
  455. HTREEITEM htiAtLevel2 =
  456. pTreeCtrl->InsertItem(
  457. LPCTSTR(sTreeItemText),
  458. htiAtLevel1
  459. );
  460. ASSERT( htiAtLevel2 != NULL );
  461. htiAtLevel2;
  462. } // for( int nTreeIdx2=0; nTreeIdx2<5; nTreeIdx2++ )
  463. } // for( int nTreeIdx1=0; nTreeIdx1<5; nTreeIdx1++ )
  464. } // for( int nTreeIdx0=0; nTreeIdx0<10; nTreeIdx0++ )
  465. return TRUE;
  466. }
  467. //////////////////////////////////////////////////////////////////////////
  468. void CPageTabContainers::OnSelendokComboOrientation() 
  469. {
  470. CString sOrientation;
  471. m_Orientation.GetWindowText(sOrientation);
  472. if(sOrientation=="Top"){
  473. m_wndTabPageContainerFlat.OrientationSet(__ETWS_ORIENT_TOP);
  474. m_wndTabPageContainer.OrientationSet(__ETWS_ORIENT_TOP);
  475. }
  476. if(sOrientation=="Bottom"){
  477. m_wndTabPageContainerFlat.OrientationSet(__ETWS_ORIENT_BOTTOM);
  478. m_wndTabPageContainer.OrientationSet(__ETWS_ORIENT_BOTTOM);
  479. }
  480. if(sOrientation=="Left"){
  481. m_wndTabPageContainerFlat.OrientationSet(__ETWS_ORIENT_LEFT);
  482. m_wndTabPageContainer.OrientationSet(__ETWS_ORIENT_LEFT);
  483. }
  484. if(sOrientation=="Right"){
  485. m_wndTabPageContainerFlat.OrientationSet(__ETWS_ORIENT_RIGHT);
  486. m_wndTabPageContainer.OrientationSet(__ETWS_ORIENT_RIGHT);
  487. }
  488. }
  489. //////////////////////////////////////////////////////////////////////////
  490. BOOL CPageTabContainers::OnCmdMsg(UINT nID, INT nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
  491. {
  492. if( !m_bInitComplete ){
  493. return CPageBase::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
  494. }
  495. if( nCode == EN_CHANGE )
  496. {
  497. UpdateData();
  498. switch( nID )
  499. {
  500. case IDC_EDIT_SHIFT:
  501. m_wndTabPageContainerFlat.SetShift( m_nShift );
  502. break;
  503. case IDC_EDIT_SIZE:
  504. m_wndTabPageContainerFlat.SetSize( m_nSize );
  505. break;
  506. default:
  507. return CPageBase::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
  508. }
  509. return TRUE;
  510. }
  511. if( nCode == CN_COMMAND )
  512. {
  513. bool bDlgButtonChecked = ( IsDlgButtonChecked( nID ) == BST_CHECKED );
  514. switch( nID )
  515. {
  516. case IDC_CHECK_AUTOHIDE_SCROLL:
  517. m_wndTabPageContainerFlat.AutoHideScrollSet( bDlgButtonChecked );
  518. m_wndTabPageContainer.AutoHideScrollSet( bDlgButtonChecked );
  519. break;
  520. case IDC_CHECK_BOLD_SELECTION:
  521. m_wndTabPageContainerFlat.SelectionBoldSet( bDlgButtonChecked );
  522. m_wndTabPageContainer.SelectionBoldSet( bDlgButtonChecked );
  523. break;
  524. case IDC_CHECK_CENTER_TEXT:
  525. m_wndTabPageContainerFlat.CenterTextSet( bDlgButtonChecked );
  526. m_wndTabPageContainer.CenterTextSet( bDlgButtonChecked );
  527. break;
  528. case IDC_CHECK_SHOW_CLOSE:
  529. GetDlgItem( IDC_CHECK_ENABLE_CLOSE )->EnableWindow( bDlgButtonChecked );
  530. m_wndTabPageContainerFlat.ShowBtnCloseSet( bDlgButtonChecked );
  531. m_wndTabPageContainer.ShowBtnCloseSet( bDlgButtonChecked );
  532. break;
  533. case IDC_CHECK_ENABLE_CLOSE:
  534. m_wndTabPageContainerFlat.EnabledBtnCloseSet( bDlgButtonChecked );
  535. m_wndTabPageContainer.EnabledBtnCloseSet( bDlgButtonChecked );
  536. break;
  537. case IDC_CHECK_SHOW_HELP:
  538. GetDlgItem( IDC_CHECK_ENABLE_HELP )->EnableWindow( bDlgButtonChecked );
  539. m_wndTabPageContainerFlat.ShowBtnHelpSet( bDlgButtonChecked );
  540. m_wndTabPageContainer.ShowBtnHelpSet( bDlgButtonChecked );
  541. break;
  542. case IDC_CHECK_ENABLE_HELP:
  543. m_wndTabPageContainerFlat.EnabledBtnHelpSet( bDlgButtonChecked );
  544. m_wndTabPageContainer.EnabledBtnHelpSet( bDlgButtonChecked );
  545. break;
  546. case IDC_CHECK_SHOW_TAB_LIST:
  547. GetDlgItem( IDC_CHECK_ENABLE_TAB_LIST )->EnableWindow( bDlgButtonChecked );
  548. m_wndTabPageContainerFlat.ShowBtnTabListSet( bDlgButtonChecked );
  549. m_wndTabPageContainer.ShowBtnTabListSet( bDlgButtonChecked );
  550. break;
  551. case IDC_CHECK_ENABLE_TAB_LIST:
  552. m_wndTabPageContainerFlat.EnabledBtnTabListSet( bDlgButtonChecked );
  553. m_wndTabPageContainer.EnabledBtnTabListSet( bDlgButtonChecked );
  554. break;
  555. case IDC_CHECK_EQUAL_WIDTHS:
  556. m_wndTabPageContainerFlat.EqualWidthsSet( bDlgButtonChecked );
  557. m_wndTabPageContainer.EqualWidthsSet( bDlgButtonChecked );
  558. break;
  559. case IDC_CHECK_FOCUS_ON_HOVER:
  560. m_wndTabPageContainerFlat.HoverFocusSet( bDlgButtonChecked );
  561. m_wndTabPageContainer.HoverFocusSet( bDlgButtonChecked );
  562. break;
  563. case IDC_CHECK_ITEM_DRAGGING:
  564. m_wndTabPageContainerFlat.ItemDraggingSet( bDlgButtonChecked );
  565. m_wndTabPageContainer.ItemDraggingSet( bDlgButtonChecked );
  566. break;
  567. case IDC_CHECK_SHOW_HOME:
  568. m_wndTabPageContainerFlat.ShowBtnScrollHomeSet( bDlgButtonChecked );
  569. m_wndTabPageContainer.ShowBtnScrollHomeSet( bDlgButtonChecked );
  570. break;
  571. case IDC_CHECK_SHOW_END:
  572. m_wndTabPageContainerFlat.ShowBtnScrollEndSet( bDlgButtonChecked );
  573. m_wndTabPageContainer.ShowBtnScrollEndSet( bDlgButtonChecked );
  574. break;
  575. case IDC_CHECK_FULL_WIDTHS:
  576. m_wndTabPageContainerFlat.FullWidthSet( bDlgButtonChecked );
  577. m_wndTabPageContainer.FullWidthSet( bDlgButtonChecked );
  578. break;
  579. case IDC_CHECK_INVERT_VERT_FONT:
  580. m_wndTabPageContainerFlat.InvertVertFontSet( bDlgButtonChecked );
  581. m_wndTabPageContainer.InvertVertFontSet( bDlgButtonChecked );
  582. break;
  583. case IDC_CHECK_SHOW_BORDERS:
  584. {
  585. DWORD dwAddExBorderStyles = WS_EX_STATICEDGE;
  586. DWORD dwRemoveExBorderStyles = WS_EX_STATICEDGE;
  587. bDlgButtonChecked 
  588. ? dwRemoveExBorderStyles = 0
  589. : dwAddExBorderStyles = 0;
  590. m_wndTabPageContainerFlat.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles );
  591. m_wndTabPageContainer.ModifyStyleEx( dwRemoveExBorderStyles, dwAddExBorderStyles );
  592. UINT nSetWindowPosFlags =
  593. SWP_NOMOVE|SWP_NOSIZE
  594. |SWP_NOZORDER|SWP_NOOWNERZORDER
  595. |SWP_NOACTIVATE
  596. |SWP_FRAMECHANGED
  597. ;
  598. m_wndTabPageContainerFlat.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags);
  599. m_wndTabPageContainer.SetWindowPos(NULL,0,0,0,0,nSetWindowPosFlags);
  600. }
  601. break;
  602. case IDC_CHECK_INCLINE_AFTER:
  603. m_wndTabPageContainerFlat.ItemsHasInclineAfterSet( !m_wndTabPageContainerFlat.ItemsHasInclineAfterGet() );
  604. break;
  605. case IDC_CHECK_INCLINE_BEFORE:
  606. m_wndTabPageContainerFlat.ItemsHasInclineBeforeSet( !m_wndTabPageContainerFlat.ItemsHasInclineBeforeGet() );
  607. break;
  608. default:
  609. return CPageBase::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
  610. }
  611. return TRUE;
  612. }
  613. return CPageBase::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
  614. }
  615. #endif // #if (!defined __EXT_MFC_NO_TAB_PAGECONTAINER_CTRL && !defined __EXT_MFC_NO_TAB_PAGECONTAINER_FLAT_CTRL )