Моделювання. Математичне моделювання
// ProgramDlg.cpp : файл
реализации
//
#include "stdafx.h"
#include "Program.h"
#include "ProgramDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// диалоговое окно
CProgramDlg
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CProgramDlg::IDD, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    c[0] = 0xFF00FF;
    c[1] = 0xFFA500;
    c[2] = 0xFFFF;
    c[3] = 0x0C7800;
    c[4] = 0x005690;
    c[5] = 0xFFFF0000;
    c[6] = 0xCC00AA;
    c[7] = 0xAA5600;
    c[8] = 0xAAAA;
    c[9] = 0x00CC00;
    c[10] = 0x090056;
    c[11] = 0xF0F0F0;
    fg = true;
    SetWindowTextW(L"Program");
}
BEGIN_MESSAGE_MAP(CProgramDlg, CDialog)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
END_MESSAGE_MAP()
// обработчики сообщений
CProgramDlg
BOOL CProgramDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    // Задает значок для этого диалогового окна.  Среда делает это автоматически,
    //  если главное окно приложения
не является диалоговым
    SetIcon(m_hIcon, TRUE);          // Крупный значок
    SetIcon(m_hIcon, FALSE);     // Мелкий значок
    // TODO: добавьте дополнительную инициализацию
    return TRUE;  // возврат
значения TRUE, если фокус не передан элементу управления
}
// При добавлении кнопки
свертывания в диалоговое окно нужно воспользоваться приведенным ниже кодом,
//  чтобы нарисовать значок.  Для приложений MFC, использующих модель
документов или представлений,
//  это автоматически выполняется рабочей областью.
void CProgramDlg::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
    {
       CClientDC dc(this);
       GetClientRect(&rc);
       w.left = rc.left+200;
       w.right = rc.right-150;
       w.top = rc.top + 100;
       w.bottom = rc.bottom-20;
       dc.FillSolidRect(&w, RGB(255, 255, 255));
       kw[0].left = w.left + 50;
       kw[0].top = w.top + 25;
       kw[0].right = w.right - 90;
       kw[0].bottom = w.bottom - 30;
       hPenOxy = CreatePen(PS_SOLID, 2,
0x008B0000);//создаем кисть цветом "crOxy"
       hOldPen = (HPEN)SelectObject(dc, hPenOxy);
       //dc.FillSolidRect(&kw[0], RGB(0, 0, 0));
       dc.Rectangle(&kw[0]);
       dc.Ellipse(&kw[0]);
       //hbk = (HFONT)::GetStockObject(SYSTEM_FONT);
       //hNew = CreateFont(44, 0, 0, 0, FW_NORMAL, 0, 0, 0, ANSI_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH |
FF_DONTCARE, L"Penta");
       //t = "Эта именно ТА САМАЯ фраза";
       //hold = (HFONT)SelectObject(dc, hNew);
       //SetTextColor(dc, c[5]);
       //dc.TextOutW(75, 80, t, t.GetLength());
       //hold = (HFONT)SelectObject(dc, hbk);
       SelectObject(dc, hOldPen);
       DeleteObject(hPenOxy);
       
       CDialog::OnPaint();
    }
}
// Система вызывает эту
функцию для получения отображения курсора при перемещении
//  свернутого окна.
HCURSOR CProgramDlg::OnQueryDragIcon()
{
    return static_cast<HCURSOR>(m_hIcon);
}
 HPEN hPenOxy, hOldPen
// ProgramDlg.cpp : файл
реализации
//
#include "stdafx.h"
#include "Program.h"
#include "ProgramDlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// диалоговое окно
CProgramDlg
CProgramDlg::CProgramDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CProgramDlg::IDD, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CProgramDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    c[0] = 0xFF00FF;
    c[1] = 0xFFA500;
    c[2] = 0xFFFF;
    c[3] = 0x0C7800;
    c[4] = 0x005690;
    c[5] = 0xFFFF0000;
    c[6] = 0xCC00AA;
    c[7] = 0xAA5600;
    c[8] = 0xAAAA;
    c[9] = 0x00CC00;
    c[10] = 0x090056;
    c[11] = 0xF0F0F0;
    fg = true;
    SetWindowTextW(L"Program");
    DDX_Control(pDX, IDC_RADIO1, RD1);
    DDX_Control(pDX, IDC_RADIO2, RD2);
}
BEGIN_MESSAGE_MAP(CProgramDlg, CDialog)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_RADIO1, &CProgramDlg::OnBnClickedRadio1)
    ON_BN_CLICKED(IDC_RADIO2, &CProgramDlg::OnBnClickedRadio2)
END_MESSAGE_MAP()
// обработчики сообщений
CProgramDlg
BOOL CProgramDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    // Задает значок для этого диалогового окна.  Среда делает это автоматически,
    //  если главное окно приложения
не является диалоговым
    SetIcon(m_hIcon, TRUE);          // Крупный значок
    SetIcon(m_hIcon, FALSE);     // Мелкий значок
    // TODO: добавьте дополнительную инициализацию
    RD1.SetCheck(0);
    RD2.SetCheck(1);
    return TRUE;  // возврат
значения TRUE, если фокус не передан элементу управления
}
// При добавлении кнопки свертывания
в диалоговое окно нужно воспользоваться приведенным ниже кодом,
//  чтобы нарисовать значок.  Для приложений MFC, использующих модель
документов или представлений,
//  это автоматически выполняется рабочей
областью.
void CProgramDlg::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
    {
       CClientDC dc(this);
       GetClientRect(&rc);
       w.left = rc.left+200;
       w.right = rc.right-150;
       w.top = rc.top + 100;
       w.bottom = rc.bottom-20;
       dc.FillSolidRect(&w, RGB(255, 255, 255));
       kw[0].left = w.left + 50;
       kw[0].top = w.top + 25;
       kw[0].right = w.right - 90;
       kw[0].bottom = w.bottom - 30;
       hPenOxy = CreatePen(PS_SOLID, 2,
0x00E29897);
       hOldPen = (HPEN)SelectObject(dc, hPenOxy);
       m = CreateSolidBrush(0x003CD8FF);
       oldm = (HBRUSH)dc.SelectObject(m);
       dc.Rectangle(&kw[0]);
        //dc.Ellipse(&kw[0]);
       SelectObject(dc, hOldPen);
       DeleteObject(hPenOxy);
       DeleteObject(m);
       SelectObject(dc, oldm);
       
       CDialog::OnPaint();
    }
}
// Система вызывает эту
функцию для получения отображения курсора при перемещении
//  свернутого окна.
HCURSOR CProgramDlg::OnQueryDragIcon()
{
    return static_cast<HCURSOR>(m_hIcon);
}
void CProgramDlg::OnBnClickedRadio1()
{
    // TODO: Add your control notification handler code here
    RD1.SetCheck(1);
    RD2.SetCheck(0);
    CClientDC dc(this);
    GetClientRect(&rc);
    w.left = rc.left + 200;
    w.right = rc.right - 150;
    w.top = rc.top + 100;
    w.bottom = rc.bottom - 20;
    dc.FillSolidRect(&w, RGB(255, 255, 255));
    kw[0].left = w.left + 50;
    kw[0].top = w.top + 25;
    kw[0].right = w.right - 90;
    kw[0].bottom = w.bottom - 30;
    hPenOxy = CreatePen(PS_SOLID, 2, 0x00E29897);
    hOldPen = (HPEN)SelectObject(dc, hPenOxy);
    m = CreateSolidBrush(0x003CD8FF);
    oldm = (HBRUSH)dc.SelectObject(m);
    //dc.Rectangle(&kw[0]);
    dc.Ellipse(&kw[0]);
    SelectObject(dc, hOldPen);
    DeleteObject(hPenOxy);
    DeleteObject(m);
    SelectObject(dc, oldm);
}
void CProgramDlg::OnBnClickedRadio2()
{
    // TODO: Add your control notification handler code here
    RD1.SetCheck(0);
    RD2.SetCheck(1);
    CClientDC dc(this);
    GetClientRect(&rc);
    w.left = rc.left + 200;
    w.right = rc.right - 150;
    w.top = rc.top + 100;
    w.bottom = rc.bottom - 20;
    dc.FillSolidRect(&w, RGB(255, 255, 255));
    kw[0].left = w.left + 50;
    kw[0].top = w.top + 25;
    kw[0].right = w.right - 90;
    kw[0].bottom = w.bottom - 30;
    hPenOxy = CreatePen(PS_SOLID, 2, 0x00E29897);
    hOldPen = (HPEN)SelectObject(dc, hPenOxy);
    m = CreateSolidBrush(0x003CD8FF);
    oldm = (HBRUSH)dc.SelectObject(m);
    dc.Rectangle(&kw[0]);
    //dc.Ellipse(&kw[0]);
    SelectObject(dc, hOldPen);
    DeleteObject(hPenOxy);
    DeleteObject(m);
    SelectObject(dc, oldm);
}
Комментариев нет:
Отправить комментарий