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

对话框与窗口

开发平台:

Visual C++

  1. // ddxm.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "ddxm.h"
  22. #include "wordpad.h"
  23. #include "resource.h"
  24. // this routine prints a floatingpoint number with 2 digits after the decimal
  25. void PASCAL DDX_Twips(CDataExchange* pDX, int nIDC, int& value)
  26. {
  27. HWND hWndCtrl = pDX->PrepareEditCtrl(nIDC);
  28. TCHAR szT[64];
  29. if (pDX->m_bSaveAndValidate)
  30. {
  31. ::GetWindowText(hWndCtrl, szT, sizeof(szT));
  32. if (szT[0] != NULL) // not empty
  33. {
  34. if (!theApp.ParseMeasurement(szT, value))
  35. {
  36. AfxMessageBox(IDS_INVALID_MEASUREMENT,MB_OK|MB_ICONINFORMATION);
  37. pDX->Fail();            // throws exception
  38. }
  39. theApp.PrintTwips(szT, value, 2);
  40. theApp.ParseMeasurement(szT, value);
  41. }
  42. else // empty
  43. value = INT_MAX;
  44. }
  45. else
  46. {
  47. // convert from twips to default units
  48. if (value != INT_MAX)
  49. {
  50. theApp.PrintTwips(szT, value, 2);
  51. SetWindowText(hWndCtrl, szT);
  52. }
  53. }
  54. }
  55. void PASCAL DDV_MinMaxTwips(CDataExchange* pDX, int value, int minVal, int maxVal)
  56. {
  57. ASSERT(minVal <= maxVal);
  58. if (value < minVal || value > maxVal)
  59. {
  60. // "The measurement must be between %1 and %2."
  61. if (!pDX->m_bSaveAndValidate)
  62. {
  63. TRACE0("Warning: initial dialog data is out of range.n");
  64. return;     // don't stop now
  65. }
  66. TCHAR szMin[64];
  67. TCHAR szMax[64];
  68. theApp.PrintTwips(szMin, minVal, 2);
  69. theApp.PrintTwips(szMax, maxVal, 2);
  70. CString prompt;
  71. AfxFormatString2(prompt, IDS_MEASUREMENT_RANGE, szMin, szMax);
  72. AfxMessageBox(prompt, MB_ICONEXCLAMATION, AFX_IDS_APP_TITLE);
  73. prompt.Empty(); // exception prep
  74. pDX->Fail();
  75. }
  76. }