Advertisement
Guest User

Untitled

a guest
Oct 28th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.40 KB | None | 0 0
  1.  
  2. // MFCApplication1Dlg.cpp : файл реализации
  3. //
  4.  
  5. #include "stdafx.h"
  6. #include "MFCApplication1.h"
  7. #include "MFCApplication1Dlg.h"
  8. #include "afxdialogex.h"
  9.  
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #endif
  13.  
  14.  
  15. // Диалоговое окно CAboutDlg используется для описания сведений о приложении
  16.  
  17. class CAboutDlg : public CDialogEx
  18. {
  19. public:
  20. CAboutDlg();
  21.  
  22. // Данные диалогового окна
  23. enum { IDD = IDD_ABOUTBOX };
  24.  
  25. protected:
  26. virtual void DoDataExchange(CDataExchange* pDX); // поддержка DDX/DDV
  27.  
  28. // Реализация
  29. protected:
  30. DECLARE_MESSAGE_MAP()
  31. };
  32.  
  33. CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
  34. {
  35. }
  36.  
  37. void CAboutDlg::DoDataExchange(CDataExchange* pDX)
  38. {
  39. CDialogEx::DoDataExchange(pDX);
  40. }
  41.  
  42. BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
  43. END_MESSAGE_MAP()
  44.  
  45.  
  46. // диалоговое окно CMFCApplication1Dlg
  47.  
  48.  
  49.  
  50. CMFCApplication1Dlg::CMFCApplication1Dlg(CWnd* pParent /*=NULL*/)
  51. : CDialogEx(CMFCApplication1Dlg::IDD, pParent)
  52. {
  53. m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
  54. }
  55.  
  56. void CMFCApplication1Dlg::DoDataExchange(CDataExchange* pDX)
  57. {
  58. CDialogEx::DoDataExchange(pDX);
  59. DDX_Control(pDX, IDC_LIST1, m_ctrlist);
  60. }
  61.  
  62. BEGIN_MESSAGE_MAP(CMFCApplication1Dlg, CDialogEx)
  63. ON_WM_SYSCOMMAND()
  64. ON_WM_PAINT()
  65. ON_WM_QUERYDRAGICON()
  66. END_MESSAGE_MAP()
  67.  
  68.  
  69. // обработчики сообщений CMFCApplication1Dlg
  70.  
  71. BOOL CMFCApplication1Dlg::OnInitDialog()
  72. {
  73. CDialogEx::OnInitDialog();
  74.  
  75. // Добавление пункта "О программе..." в системное меню.
  76.  
  77. // IDM_ABOUTBOX должен быть в пределах системной команды.
  78. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
  79. ASSERT(IDM_ABOUTBOX < 0xF000);
  80.  
  81. CMenu* pSysMenu = GetSystemMenu(FALSE);
  82. if (pSysMenu != NULL)
  83. {
  84. BOOL bNameValid;
  85. CString strAboutMenu;
  86. bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
  87. ASSERT(bNameValid);
  88. if (!strAboutMenu.IsEmpty())
  89. {
  90. pSysMenu->AppendMenu(MF_SEPARATOR);
  91. pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
  92. }
  93. }
  94.  
  95. // Задает значок для этого диалогового окна. Среда делает это автоматически,
  96. // если главное окно приложения не является диалоговым
  97. SetIcon(m_hIcon, TRUE); // Крупный значок
  98. SetIcon(m_hIcon, FALSE); // Мелкий значок
  99. //m_ctrlist.InsertColumn();
  100. m_ctrlist.InsertColumn(0,L"1",LVCFMT_LEFT,200);
  101. // TODO: добавьте дополнительную инициализацию
  102.  
  103. return TRUE; // возврат значения TRUE, если фокус не передан элементу управления
  104. }
  105.  
  106. void CMFCApplication1Dlg::OnSysCommand(UINT nID, LPARAM lParam)
  107. {
  108. if ((nID & 0xFFF0) == IDM_ABOUTBOX)
  109. {
  110. CAboutDlg dlgAbout;
  111. dlgAbout.DoModal();
  112. }
  113. else
  114. {
  115. CDialogEx::OnSysCommand(nID, lParam);
  116. }
  117. }
  118.  
  119. // При добавлении кнопки свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,
  120. // чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,
  121. // это автоматически выполняется рабочей областью.
  122.  
  123. void CMFCApplication1Dlg::OnPaint()
  124. {
  125. if (IsIconic())
  126. {
  127. CPaintDC dc(this); // контекст устройства для рисования
  128.  
  129. SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
  130.  
  131. // Выравнивание значка по центру клиентского прямоугольника
  132. int cxIcon = GetSystemMetrics(SM_CXICON);
  133. int cyIcon = GetSystemMetrics(SM_CYICON);
  134. CRect rect;
  135. GetClientRect(&rect);
  136. int x = (rect.Width() - cxIcon + 1) / 2;
  137. int y = (rect.Height() - cyIcon + 1) / 2;
  138.  
  139. // Нарисуйте значок
  140. dc.DrawIcon(x, y, m_hIcon);
  141. }
  142. else
  143. {
  144. CDialogEx::OnPaint();
  145. }
  146. }
  147.  
  148. // Система вызывает эту функцию для получения отображения курсора при перемещении
  149. // свернутого окна.
  150. HCURSOR CMFCApplication1Dlg::OnQueryDragIcon()
  151. {
  152. return static_cast<HCURSOR>(m_hIcon);
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement