Program3in1


Скачиваем 3 файла с сайта 3 файла на скриншоте видно некоторый код я брал с этих файлов
Распаковываем 3, файла вот что должно выйти
За основу берем шаблон программы ProgramRadioButton
Создаем собственную функцию-подпрограмму
risovanie(0) - для квадратов
risovanie(1) - для кругов
risovanie(2) - для разноцветных квадратов
risovanie(3) - для разноцветных кругов

Редактируем файл ProgramDlg.h
Добавляем то что выделено красным
Редактируем файл ProgramDlg.cpp В конце файла cpp пишем
void CProgramDlg::risovanie(int p)
{

}
Вырезаем из раздела OnBnClickedRadio2 и вставляем в раздела который мы написали
CClientDC dc(this);
GetClientRect(&rc);

w.left = rc.left + 200;
w.right = rc.right - 150;
w.top = rc.top + 110;
w.bottom = rc.bottom - 50;
dc.FillSolidRect(&w, RGB(255, 255, 255));

x1 = w.left + 70;
y1 = w.top + 20;
x2 = w.right - 70;
y2 = w.bottom - 10;

cf = 0x0000DDFF;
ck = 0x00800000;

hPenOxy = CreatePen(PS_SOLID, 6, ck);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(cf);
oldm = (HBRUSH)dc.SelectObject(m);

dc.Rectangle(x1, y1, x2, y2);
//dc.Ellipse(x1, y1, x2, y2);

DeleteObject(m);
SelectObject(dc, oldm);
SelectObject(dc, hOldPen);
DeleteObject(hPenOxy);
В раздела из которого мы вырезали пишем
risovanie(0);
Меняем w на rc
Вместо
dc.Rectangle(x1, y1, x2, y2);
//dc.Ellipse(x1, y1, x2, y2);

Пишем
if(p==0)dc.Rectangle(x1, y1, x2, y2);
else dc.Ellipse(x1, y1, x2, y2);
Удаляем из блока OnBnClickedRadio1 вместо этого пишем
risovanie(1);
В ветке else в блоке OnPaint удаляем содержимое и пишем
risovanie(0);
Редактируем планшетку (вот что должно получится)
После компиляции вот что должно получиться
Переходим в файл ProgramDlg.cpp под fg=true; пишем
c[0] = 0x000000FF;
c[1] = 0x00008CFF;
c[2] = 0x0000FFD0;
c[3] = 0x00008000;
c[4] = 0x00CEE23A;
c[5] = 0x00FF0000;
c[6] = 0x008B0B8B;
Под else dc.Ellipse(x1, y1, x2, y2); пишем
if ((p == 2) || (p == 3))
{
rc.left += 180;
rc.right -= 180;
rc.top += 20;
rc.bottom -= 20;

dx = abs(rc.right - rc.left) / 7;
dy = abs(rc.bottom - rc.top) / 7;

for (k = 0; k < 7; k++)
{
hPenOxy = CreatePen(PS_SOLID, 2, c[k]);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);
m = CreateSolidBrush(c[k]);
oldm = (HBRUSH)dc.SelectObject(m);

if(p==2) dc.Rectangle(rc.left+k*dx/2, rc.top + k*dy/2, rc.right-k*dx/2, rc.bottom-k*dy/2);
else dc.Ellipse(rc.left + k*dx / 2, rc.top + k*dy / 2, rc.right - k*dx / 2, rc.bottom - k*dy / 2);
}
}
В OnBnClickedRadio2 risovanie(0); изменяем на risovanie(2);
В OnBnClickedRadio1 risovanie(1); на risovanie(3); В else risovanie(0); на risovanie(2);
Компилируем и вот что должно получиться
Создаем новый класс для окна Intro (CDialo1.h ->Dialo1.h Dialo1.cpp) Дальше пойдет без комментариев только картинки (недолго) все будет понятно
Если вы хотите в 3D(как показано выше) еффекте то вставляйте это
CClientDC dc(this);
GetClientRect(&rc);

dx = abs(rc.right - rc.left) / 7;
dy = abs(rc.bottom - rc.top) / 7;

for (k = 0; k < 7; k++)
{

m = CreateSolidBrush(c[k]);
oldm = (HBRUSH)dc.SelectObject(m);

hPenOxy = CreatePen(PS_SOLID, 2, c[k]);
hOldPen = (HPEN)SelectObject(dc, hPenOxy);

dc.Rectangle(rc.left+k*dx,rc.top,rc.left+(k+1)*dx, rc.bottom);
}

hPenOxy = CreatePen(PS_SOLID, 6, RGB(255,255,255));
hOldPen = (HPEN)SelectObject(dc, hPenOxy);

for (k = 0; k < 6; k++)
{
dc.MoveTo(rc.left + (k + 1)*dx, rc.top);
dc.LineTo(rc.left + (k + 1)*dx, rc.bottom);

dc.MoveTo(rc.left, rc.top + (k + 1)*dy);
dc.LineTo(rc.right, rc.top + (k + 1)*dx);
}
DeleteObject(m);
SelectObject(dc, oldm);
SelectObject(dc, hOldPen);
DeleteObject(hPenOxy);

Если хотите такую

CClientDC dc(this);
GetClientRect(&rc);

dx = abs(rc.right - rc.left) / 7;
dy = abs(rc.bottom - rc.top) / 7;

for (k = 0; k < 7; k++)
{
w.left = rc.left+k*dx;
w.right = rc.left+(k+1)*dx;
w.top = rc.top;
w.bottom = rc.bottom;
dc.FillSolidRect(&w, c[k]);
}

hPenOxy = CreatePen(PS_SOLID, 7, RGB(255,255,255));
hOldPen = (HPEN)SelectObject(dc, hPenOxy);

for (k = 0; k < 7; k++)
{
dc.MoveTo(rc.left+k*dx , rc.top );
dc.LineTo(rc.left + k*dx, rc.bottom);

dc.MoveTo(rc.left , rc.top + k*dy);
dc.LineTo(rc.right , rc.top + k*dy);
}

SelectObject(dc, hOldPen);
DeleteObject(hPenOxy);

Вот и все компилируем и вот что должно получится
Если не получилось то вот видео
Некоторые файлы были взяты с сайта

Комментарии

  1. Merkur - Merkur Progress Safety Razor (3 Pieces) - Xn--o80b910a26eepc81il5g
    Merkur Progress Safety Razor (3 Pieces) 인카지노 - Xn--o80b910a26eepc81il5g.Online: Merkur Progress Safety Razor (3 Pieces) - Xn--o80b910a26eepc81il5g.Online: Merkur Progress Safety Razor (3 Pieces) - Xn--o80b910a26eepc81il5g.Online: Merkur Progress Safety Razor (3 Pieces) - Xn--o80b910a26eepc81il5g.Online: Merkur Progress Safety Razor 메리트 카지노 쿠폰 (3 샌즈카지노 Pieces) - Xn--o80b910a26eepc

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Полярная система координат

Системы счисления

Качер Бровина от сети 220 вольт