GetNumberDlg.cpp
Upload User: kairuinn
Upload Date: 2009-02-07
Package Size: 2922k
Code Size: 3k
Category:

Graph program

Development Platform:

Visual C++

  1. // GetNumberDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "..//..//Solidgraph.h"
  5. #include "GetNumberDlg.h"
  6. #include ".getnumberdlg.h"
  7. // CGetNumberDlg dialog
  8. IMPLEMENT_DYNAMIC(CGetNumberDlg, CDialog)
  9. CGetNumberDlg::CGetNumberDlg(CWnd* pParent /*=NULL*/)
  10. : CDialog(CGetNumberDlg::IDD, pParent)
  11. {
  12. m_enable_history = NULL;
  13. m_was_diasabled = false;
  14. }
  15. CGetNumberDlg::~CGetNumberDlg()
  16. {
  17. if (m_enable_history)
  18. delete[] m_enable_history;
  19. }
  20. void CGetNumberDlg::DoDataExchange(CDataExchange* pDX)
  21. {
  22. CDialog::DoDataExchange(pDX);
  23. DDX_Control(pDX, IDC_NUMBER_EDIT, m_number_edit);
  24. }
  25. IBaseInterfaceOfGetDialogs::DLG_TYPE CGetNumberDlg::GetType()
  26. {
  27. return IBaseInterfaceOfGetDialogs::GET_NUMBER_DLG;
  28. }
  29. CWnd*   CGetNumberDlg::GetWindow()
  30. {
  31. return this;
  32. }
  33. void    CGetNumberDlg::EnableControls(bool enbl)
  34. {
  35. if (m_enable_history==NULL)
  36. m_enable_history = new bool[1];
  37. if (enbl)
  38. {
  39.    GetDlgItem(IDC_NUMBER_EDIT)->EnableWindow(m_enable_history[0]);
  40.    GetDlgItem(IDC_NUMBER_EDIT)->SetFocus();
  41.    m_was_diasabled = false;
  42. }
  43. else
  44. {
  45. if (!m_was_diasabled)
  46. m_enable_history[0] = GetDlgItem(IDC_NUMBER_EDIT)->IsWindowEnabled()!=0;
  47. GetDlgItem(IDC_NUMBER_EDIT)->EnableWindow(FALSE);
  48. m_was_diasabled = true;
  49. }
  50. }
  51. BEGIN_MESSAGE_MAP(CGetNumberDlg, CDialog)
  52. ON_WM_CHAR()
  53. ON_WM_ERASEBKGND()
  54. ON_WM_CTLCOLOR()
  55. ON_WM_SIZE()
  56. END_MESSAGE_MAP()
  57. double CGetNumberDlg::GetNumber()
  58. {
  59. return static_cast<double>(m_number_edit.GetValue());
  60. }
  61. void   CGetNumberDlg::SetNumber(double nmbr)
  62. {
  63. m_number_edit.SetValue(static_cast<float>(nmbr));
  64. }
  65. void CGetNumberDlg::OnOK()
  66. {
  67. }
  68. void CGetNumberDlg::OnCancel()
  69. {
  70. }
  71. BOOL CGetNumberDlg::OnInitDialog()
  72. {
  73. CDialog::OnInitDialog();
  74. return TRUE;  // return TRUE unless you set the focus to a control
  75. // EXCEPTION: OCX Property Pages should return FALSE
  76. }
  77. void CGetNumberDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
  78. {
  79. switch(nChar) 
  80. {
  81. case VK_RETURN:
  82. case VK_ESCAPE:
  83. ASSERT(0);
  84. return;
  85. default:
  86. {
  87. CWnd* focW = GetFocus();
  88. if (focW==&m_number_edit)
  89. {
  90. m_number_edit.OnChar(nChar,nRepCnt,nFlags);
  91. return;
  92. }
  93. else
  94. {
  95. m_number_edit.SendMessage(GET_DIALOGS_MESSAGE_PRE_SET_FOCUS,nChar,nRepCnt);
  96. }
  97. return;
  98. }
  99. break;
  100. }
  101. CDialog::OnChar(nChar, nRepCnt, nFlags);
  102. }
  103. BOOL CGetNumberDlg::OnEraseBkgnd(CDC* pDC)
  104. {
  105. // TODO: Add your message handler code here and/or call default
  106. return  TRUE;//__super::OnEraseBkgnd(pDC);
  107. }
  108. HBRUSH CGetNumberDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  109. {
  110. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  111. /*int cID = pWnd->GetDlgCtrlID();
  112. if (cID == IDC_NUMBER_EDIT &&
  113. !pWnd->IsWindowEnabled())
  114. {
  115. pDC->SetBkMode(TRANSPARENT);
  116. return (HBRUSH)::GetSysColorBrush(COLOR_WINDOW);
  117. }*/
  118. return hbr;
  119. }
  120. void CGetNumberDlg::OnSize(UINT nType, int cx, int cy)
  121. {
  122. __super::OnSize(nType, cx, cy);
  123. if (m_number_edit.m_hWnd && cx>10)
  124. {
  125. CRect rcEd;
  126. m_number_edit.GetWindowRect(rcEd);
  127. ScreenToClient(rcEd);
  128. m_number_edit.MoveWindow(rcEd.left,rcEd.top,cx-2*rcEd.left,rcEd.Height());
  129. }
  130. }