Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
27.01.2024
Размер:
31.11 Кб
Скачать

Варіант 7

Лабораторна робота 13

Тема роботи:

Створення проекту простого MFC-додатку на базі діалогових вікон.

Завдання:

Скласти програму, при запуску якої повинне з'явитися діалогове вікно. У ньому, крім кнопок Ok і Cancel, повинні бути стартова кнопка з написом «Пуск» і текстове вікно. При натисканні на стартову кнопку в текстовому вікні повинен з'явитися заданий рядок символів, наприклад «Будьте здорові!».

Код програми:

#include "stdafx.h"

#include "diamain.h"

#include "diamainDlg.h"

#include "afxdialogex.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

class CAboutDlg : public CDialogEx

{

public:

CAboutDlg();

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX);

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

CdiamainDlg::CdiamainDlg(CWnd* pParent )

: CDialogEx(CdiamainDlg::IDD, pParent)

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CdiamainDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

DDX_Control(pDX, IDC_EDIT1, m_edit1);

}

BEGIN_MESSAGE_MAP(CdiamainDlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_EN_CHANGE(IDC_EDIT1, &CdiamainDlg::OnEnChangeEdit1)

ON_BN_CLICKED(IDC_BUTTON1, &CdiamainDlg::OnBnClickedButton1)

END_MESSAGE_MAP()

BOOL CdiamainDlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

BOOL bNameValid;

CString strAboutMenu;

bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

SetIcon(m_hIcon, TRUE);

SetIcon(m_hIcon, FALSE);

return TRUE; }

void CdiamainDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialogEx::OnSysCommand(nID, lParam);

}

}

void CdiamainDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this);

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialogEx::OnPaint();

}

}

HCURSOR CdiamainDlg::OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

void CdiamainDlg::OnEnChangeEdit1()

{

}

void CdiamainDlg::OnBnClickedButton1()

{

m_edit1.SetWindowTextA(CString("Будьте здорові"));

}

Скріншот роботи програми:

Висновок:

на лабораторній роботі я створив проект простого MFC-додатку на базі діалогових вікон.

Соседние файлы в папке еще какието лабки разных вариантов