Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
2.5 KiB

  1. //****************************************************************************
  2. //
  3. // Copyright (c) 1994, Microsoft Corporation
  4. //
  5. // File: BUSY.CPP
  6. //
  7. // Implementation file for the CBusy class.
  8. //
  9. // History:
  10. //
  11. // Scott V. Walker, SEA 6/30/94 Created.
  12. //
  13. //****************************************************************************
  14. #include "stdafx.h"
  15. #include "portable.h"
  16. #include "busy.h"
  17. //****************************************************************************
  18. //
  19. // CBusy::CBusy
  20. //
  21. //****************************************************************************
  22. CBusy::CBusy(CWnd *pParentWnd, LPCTSTR pszText)
  23. {
  24. SetBusy(pParentWnd, pszText);
  25. }
  26. //****************************************************************************
  27. //
  28. // CBusy::CBusy
  29. //
  30. //****************************************************************************
  31. CBusy::CBusy(CWnd *pParentWnd, UINT nID)
  32. {
  33. CString sText;
  34. sText.LoadString(nID);
  35. SetBusy(pParentWnd, sText);
  36. }
  37. //****************************************************************************
  38. //
  39. // CBusy::CBusy
  40. //
  41. //****************************************************************************
  42. CBusy::CBusy(CWnd *pParentWnd)
  43. {
  44. SetBusy(pParentWnd, _T(""));
  45. }
  46. //****************************************************************************
  47. //
  48. // CBusy::CBusy
  49. //
  50. //****************************************************************************
  51. CBusy::CBusy()
  52. {
  53. SetBusy(NULL, _T(""));
  54. }
  55. //****************************************************************************
  56. //
  57. // CBusy::SetBusy
  58. //
  59. //****************************************************************************
  60. void CBusy::SetBusy(CWnd *pParentWnd, LPCTSTR pszText)
  61. {
  62. m_pParentWnd = pParentWnd;
  63. m_hOldCursor = ::SetCursor(::LoadCursor(NULL, IDC_WAIT));
  64. if (m_pParentWnd != NULL)
  65. {
  66. TCHAR szOldText[255];
  67. // Retrieve the current text and save it 'til later.
  68. szOldText[0] = '\0';
  69. m_pParentWnd->SendMessage(WM_BUSY_GETTEXT, 255, (LPARAM)szOldText);
  70. m_sOldText = szOldText;
  71. if (pszText == NULL)
  72. pszText = _T("");
  73. m_pParentWnd->SendMessage(WM_BUSY_SETTEXT, 0, (LPARAM)pszText);
  74. }
  75. }
  76. //****************************************************************************
  77. //
  78. // CBusy::~CBusy
  79. //
  80. //****************************************************************************
  81. CBusy::~CBusy()
  82. {
  83. ::SetCursor(m_hOldCursor);
  84. if (m_pParentWnd != NULL)
  85. {
  86. m_pParentWnd->SendMessage(WM_BUSY_SETTEXT, 0,
  87. (LPARAM)(LPCTSTR)m_sOldText);
  88. }
  89. }