Advertisement
Guest User

Untitled

a guest
May 25th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.22 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include "step up.h"
  3. #include "step upDlg.h"
  4. #include "afxdialogex.h"
  5. #include "dialog.h"
  6.  
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #endif
  10.  
  11.  
  12. // Диалоговое окно CAboutDlg используется для описания сведений о приложении
  13.  
  14. class CAboutDlg : public CDialogEx
  15. {
  16. public:
  17. CAboutDlg();
  18.  
  19. // Данные диалогового окна
  20. #ifdef AFX_DESIGN_TIME
  21. enum { IDD = IDD_ABOUTBOX };
  22. #endif
  23.  
  24. protected:
  25. virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV
  26.  
  27. // Реализация
  28. protected:
  29. DECLARE_MESSAGE_MAP()
  30. };
  31.  
  32. CAboutDlg::CAboutDlg() : CDialogEx(IDD_ABOUTBOX)
  33. {
  34. }
  35.  
  36. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  37. {
  38. CDialogEx::DoDataExchange(pDX);
  39. }
  40.  
  41. BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
  42. END_MESSAGE_MAP()
  43.  
  44.  
  45. // диалоговое окно CstepupDlg
  46.  
  47.  
  48.  
  49. CstepupDlg::CstepupDlg(CWnd* pParent /*=NULL*/)
  50. : CDialogEx(IDD_STEPUP_DIALOG, pParent)
  51. , vivod(_T(""))
  52.  
  53. , slider_int(_T(""))
  54. {
  55. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  56. }
  57.  
  58. void CstepupDlg::DoDataExchange(CDataExchange* pDX)
  59. {
  60. CDialogEx::DoDataExchange(pDX);
  61. DDX_Text(pDX, IDC_EDIT1, vivod);
  62. DDX_Control(pDX, IDC_PROGRESS1, progress);
  63. DDX_Control(pDX, IDC_SLIDER1, slider);
  64.  
  65.  
  66. DDX_Text(pDX, IDC_EDIT2, slider_int);
  67. }
  68.  
  69. BEGIN_MESSAGE_MAP(CstepupDlg, CDialogEx)
  70. ON_WM_SYSCOMMAND()
  71. ON_WM_PAINT()
  72. ON_WM_QUERYDRAGICON()
  73. ON_BN_CLICKED(IDC_BUTTON1, &CstepupDlg::OnBnClickedButton1)
  74. ON_BN_CLICKED(IDC_BUTTON2, &CstepupDlg::OnBnClickedButton2)
  75.  
  76. ON_WM_HSCROLL()
  77. END_MESSAGE_MAP()
  78.  
  79.  
  80. // обработчики сообщений CstepupDlg
  81.  
  82. BOOL CstepupDlg::OnInitDialog()
  83. {
  84.  
  85. CDialogEx::OnInitDialog();
  86.  
  87. // Добавление пункта "О программе..." в системное меню.
  88.  
  89. // IDM_ABOUTBOX должен быть в пределах системной команды.
  90. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  91. ASSERT(IDM_ABOUTBOX < 0xF000);
  92.  
  93. CMenu* pSysMenu = GetSystemMenu(FALSE);
  94. if (pSysMenu != NULL)
  95. {
  96. BOOL bNameValid;
  97. CString strAboutMenu;
  98. bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
  99. ASSERT(bNameValid);
  100. if (!strAboutMenu.IsEmpty())
  101. {
  102. pSysMenu->AppendMenu(MF_SEPARATOR);
  103. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  104. }
  105. }
  106.  
  107. // Задает значок для этого диалогового окна. Среда делает это автоматически,
  108. // если главное окно приложения не является диалоговым
  109. SetIcon(m_hIcon, TRUE); // Крупный значок
  110. SetIcon(m_hIcon, FALSE); // Мелкий значок
  111.  
  112. slider.SetRange(100, 10000, TRUE);
  113. slider.SetPos(5000);
  114.  
  115.  
  116. // TODO: добавьте дополнительную инициализацию
  117.  
  118. return TRUE; // возврат значения TRUE, если фокус не передан элементу управления
  119. }
  120.  
  121. void CstepupDlg::OnSysCommand(UINT nID, LPARAM lParam)
  122. {
  123. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  124. {
  125. CAboutDlg dlgAbout;
  126. dlgAbout.DoModal();
  127. }
  128. else
  129. {
  130. CDialogEx::OnSysCommand(nID, lParam);
  131. }
  132. }
  133.  
  134. // При добавлении кнопки свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,
  135. // чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,
  136. // это автоматически выполняется рабочей областью.
  137.  
  138. void CstepupDlg::OnPaint()
  139. {
  140. if (IsIconic())
  141. {
  142. CPaintDC dc(this); // контекст устройства для рисования
  143.  
  144. SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
  145.  
  146. // Выравнивание значка по центру клиентского прямоугольника
  147. int cxIcon = GetSystemMetrics(SM_CXICON);
  148. int cyIcon = GetSystemMetrics(SM_CYICON);
  149. CRect rect;
  150. GetClientRect(&rect);
  151. int x = (rect.Width() - cxIcon + 1) / 2;
  152. int y = (rect.Height() - cyIcon + 1) / 2;
  153.  
  154. // Нарисуйте значок
  155. dc.DrawIcon(x, y, m_hIcon);
  156. }
  157. else
  158. {
  159. CDialogEx::OnPaint();
  160. }
  161. }
  162.  
  163. // Система вызывает эту функцию для получения отображения курсора при перемещении
  164. // свернутого окна.
  165. HCURSOR CstepupDlg::OnQueryDragIcon()
  166. {
  167. return static_cast<HCURSOR>(m_hIcon);
  168. }
  169.  
  170.  
  171. dialog d;
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179. void CstepupDlg::OnBnClickedButton1()
  180. {
  181. d.DoModal();
  182.  
  183. }
  184.  
  185.  
  186. void CstepupDlg::OnBnClickedButton2()
  187. {
  188. CWaitCursor w;
  189. int value = slider.GetPos();
  190.  
  191. double s = 0;
  192. double x = d.a;
  193. double h = ((d.b - x) / value);
  194. int i = 0;
  195. for (; x < d.b; x += h) {
  196. double f = 2*x;
  197. s += f*h;
  198. progress.SetPos( (100 * i++) / value);
  199.  
  200. };
  201.  
  202. vivod.Format(_T("%f"), s);
  203. UpdateData(FALSE);
  204.  
  205. }
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212. void CstepupDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
  213. {
  214. int value = slider.GetPos();
  215. slider_int.Format(_T("количество итераций = %d"), value);
  216.  
  217. UpdateData(FALSE);
  218.  
  219.  
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement