DlgConfigStatusBar.cpp
上传用户:rubberdam
上传日期:2007-01-10
资源大小:43k
文件大小:3k
源码类别:

状态条

开发平台:

Visual C++

  1. // DlgConfigStatusBar.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "MPCStatusBar_Demo.h"
  5. #include "DlgConfigStatusBar.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. #include "MPCStatusBar.h"
  12. #include "MPCLogoPane.h"
  13. #include "mainfrm.h"
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CDlgConfigStatusBar dialog
  16. CDlgConfigStatusBar::CDlgConfigStatusBar(CWnd* pParent /*=NULL*/)
  17. : CDialog(CDlgConfigStatusBar::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(CDlgConfigStatusBar)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. }
  23. void CDlgConfigStatusBar::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CDlgConfigStatusBar)
  27. DDX_Control(pDX, IDC_CHECK_logo, m_chk_logo);
  28. DDX_Control(pDX, IDC_CHECK_ledit, m_chk_edit);
  29. //}}AFX_DATA_MAP
  30. }
  31. BEGIN_MESSAGE_MAP(CDlgConfigStatusBar, CDialog)
  32. //{{AFX_MSG_MAP(CDlgConfigStatusBar)
  33. ON_BN_CLICKED(IDC_CHECK_logo, OnCHECKlogo)
  34. ON_BN_CLICKED(IDC_CHECK_ledit, OnCHECKledit)
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CDlgConfigStatusBar message handlers
  39. void CDlgConfigStatusBar::OnCHECKlogo() 
  40. {
  41. // TODO: Add your control notification handler code here
  42. CMainFrame * pMainframe = (CMainFrame *) AfxGetApp()->m_pMainWnd;
  43. if( m_chk_logo.GetCheck() )
  44. {
  45. // Add an indicator, with width, ..
  46. pMainframe->m_wndStatusBar.AddIndicator(0,INDICATOR_LOGO);
  47. int idx = pMainframe->m_wndStatusBar.CommandToIndex(INDICATOR_LOGO);
  48. pMainframe->m_wndStatusBar.SetPaneWidth(idx,120);
  49. pMainframe->m_wndStatusBar.SetPaneStyle(idx, pMainframe->m_wndStatusBar.GetPaneStyle(idx) | SBPS_NOBORDERS );
  50. // Create a log pane window, and append it to status bar
  51. MPCLogoPane * pLogo = new MPCLogoPane;
  52. pLogo->Create("Your App Name ",WS_CHILD|WS_VISIBLE,&pMainframe->m_wndStatusBar,120);
  53. pLogo->SetLogoFont("Arial", 18);
  54. pMainframe->m_wndStatusBar.AddControl(pLogo,INDICATOR_LOGO);
  55. }
  56. else
  57. {
  58. pMainframe->m_wndStatusBar.RemovePane(INDICATOR_LOGO);
  59. }
  60. }
  61. void CDlgConfigStatusBar::OnCHECKledit() 
  62. {
  63. // TODO: Add your control notification handler code here
  64. CMainFrame * pMainframe = (CMainFrame *) AfxGetApp()->m_pMainWnd;
  65. if( m_chk_edit.GetCheck() )
  66. {
  67. // Add an indicator, with width, ..
  68. pMainframe->m_wndStatusBar.AddIndicator(4,INDICATOR_EDIT);
  69. int idx = pMainframe->m_wndStatusBar.CommandToIndex(INDICATOR_EDIT);
  70. pMainframe->m_wndStatusBar.SetPaneWidth(idx,100);
  71. pMainframe->m_wndStatusBar.SetPaneStyle(idx, pMainframe->m_wndStatusBar.GetPaneStyle(idx) | SBPS_NOBORDERS );
  72. // Create a pane window, and append it to status bar
  73. CEdit * edit = new CEdit;
  74. edit->Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),&pMainframe->m_wndStatusBar,INDICATOR_EDIT);
  75. edit->SetWindowText("Hello");
  76. // create a font
  77. static CFont font;
  78. font.DeleteObject();
  79. font.CreatePointFont(80,"Arial");
  80. edit->SetFont(&font);
  81. pMainframe->m_wndStatusBar.AddControl(edit,INDICATOR_EDIT);
  82. }
  83. else
  84. {
  85. pMainframe->m_wndStatusBar.RemovePane(INDICATOR_EDIT);
  86. }
  87. }