Задание: меню(file->exit,view->picture;text;note,help->about)
сам листинг:
#include <windows.h>
#define IDM_PRIMITIVES 11 //ID ОСМЙРНБ ЛЕМЧ
#define IDM_INDIVIDUAL 12
#define IDM_TASK 21
#define IDM_EXIT 30
#define DM_PRIMITIVES 1 //пЕФХЛ ПХЯНБЮМХЪ: ОПХЛХРХБШ
#define DM_INDIVIDUAL 2 //пЕФХЛ ПХЯНБЮМХЪ: ХМДХБХДСЮКЭМНЕ ГЮДЮМХЕ
#define PSTYLE1 PS_DASH //ОЕПН1
#define PSTYLE2 PS_SOLID //ОЕПН2
#define BSTYLE1 HS_VERTICAL //ЙХЯРЭ1
#define BSTYLE2 HS_FDIAGONAL //ЙХЯРЭ2
HMENU hMenu; //ДЕЯЙПХОРНП ЦКЮБМНЦН ЛЕМЧ
HMENU hSubMenu1; //ДЕЯЙПХОРНП ЛЕМЧ "тЮИК"
HMENU hSubMenu2; //ДЕЯЙПХОРНП ЛЕМЧ "яОПЮБЙЮ"
int drawMode; //РЕЙСЫХИ ПЕФХЛ ПХЯНБЮМХЪ
COLORREF color1=RGB(255, 128, 0); //ЖБЕР1: НПЮМФЕБШИ
COLORREF color2=RGB(176, 0, 0); //ЖБЕР2: АНПДНБШИ
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpszCmdParam,int nCmdShow)
//ХМХЖХЮКХГЮЖХЪ ЦКЮБМНЦН НЙМЮ
{HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
WndClass.style = CS_HREDRAW|CS_VREDRAW;
WndClass.lpfnWndProc = WndProc;
WndClass.cbWndExtra = 0;
WndClass.cbClsExtra = 0;
WndClass.hInstance = hInst;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = "WindowClass";
RegisterClass(&WndClass);
hWnd = CreateWindow("WindowClass", "яНГДЮМХЕ ЦПЮТХВЕЯЙХУ НАЗЕЙРНБ",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Msg,NULL,0,0))
{TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
int DrawPrimitives (HWND hWnd, HDC hDC)
//пХЯНБЮМХЕ ОПХЛХРХБНБ
{RECT rect;
HPEN hPen1, hPen2;
HBRUSH hBrush1, hBrush2;
LOGBRUSH lBrush;
LOGPEN lPen;
//ГЮДЮМХЕ ОЕПЭЕБ
lPen.lopnWidth.x=0;
lPen.lopnWidth.y=0;
lPen.lopnStyle=PSTYLE1;
lPen.lopnColor=color1;
hPen1=CreatePenIndirect(&lPen);
lPen.lopnStyle=PSTYLE2;
lPen.lopnColor=color2;
hPen2=CreatePenIndirect(&lPen);
//ГЮДЮМХЕ ЙХЯРЕИ
lBrush.lbColor=color1;
lBrush.lbStyle=BS_HATCHED;
lBrush.lbHatch=BSTYLE1;
hBrush1=CreateBrushIndirect(&lBrush);
lBrush.lbColor=color2;
lBrush.lbHatch=BSTYLE2;
hBrush2=CreateBrushIndirect(&lBrush);
GetClientRect(hWnd, &rect);//оНКСВЕМХЕ ОПЪЛНСЦНКЭМХЙЮ ЙКХЕМРЯЙНИ НАКЮЯРХ НЙМЮ
SelectObject(hDC, hPen1);
MoveToEx(hDC, 10, 30, NULL);
LineTo(hDC, rect.right-10, 30); //кХМХЪ
SelectObject(hDC, hBrush1);
Ellipse(hDC, 10, 120, rect.right/2 -10, rect.bottom-10); //щККХОЯ
//ГЮДЮМХЕ ЙННПДХМЮР БЕПЬХМ КНЛЮМНИ
POINT lppt[7];
lppt[0].x=10; lppt[0].y=50;
lppt[1].x=rect.right/4; lppt[1].y=100;
lppt[2].x=rect.right/3; lppt[2].y=50;
lppt[3].x=rect.right*2/4; lppt[3].y=100;
lppt[4].x=rect.right*2/3; lppt[4].y=50;
lppt[5].x=rect.right*3/4; lppt[5].y=100;
lppt[6].x=rect.right-10; lppt[6].y=50;
SelectObject(hDC, hPen2);
Polyline(hDC, lppt, 7); //кНЛЮМЮЪ
SelectObject(hDC, hBrush2);
Rectangle(hDC, rect.right/2+10, 120, rect.right-10, rect.bottom-10); //оПЪЛНСЦНКЭМХЙ
return 0;
}
int Individual(HWND hWnd, HDC hDC)
{RECT rect;
HPEN hPen;
HBRUSH hBrush;
LOGBRUSH lBrush;
GetClientRect(hWnd, &rect);//оНКСВЕМХЕ ОПЪЛНСЦНКЭМХЙЮ ЙКХЕМРЯЙНИ НАКЮЯРХ НЙМЮ
int nX=10; //ЙНКХВЕЯРБН ПЮГАХЕМХИ
int nY=10;
hPen=(HPEN)GetStockObject(BLACK_PEN);
SelectObject(hDC, hPen);
lBrush.lbStyle=BS_SOLID;
int r1,r2,g1,g2,b1,b2;
r1=255; g1=128; b1=0; // RGB ЖБЕР1
r2=176; g2=0; b2=0; // RGB ЖБЕР2
for(int i=0;i<nX;i++)
for(int j=0;j<nY;j++)
{lBrush.lbColor=RGB(r1+(r2-r1)*(i+j)/(nX+nY-2),
g1+(g2-g1)*(i+j)/(nX+nY-2),
b1+(b2-b1)*(
сам листинг:
#include <windows.h>
#define IDM_PRIMITIVES 11 //ID ОСМЙРНБ ЛЕМЧ
#define IDM_INDIVIDUAL 12
#define IDM_TASK 21
#define IDM_EXIT 30
#define DM_PRIMITIVES 1 //пЕФХЛ ПХЯНБЮМХЪ: ОПХЛХРХБШ
#define DM_INDIVIDUAL 2 //пЕФХЛ ПХЯНБЮМХЪ: ХМДХБХДСЮКЭМНЕ ГЮДЮМХЕ
#define PSTYLE1 PS_DASH //ОЕПН1
#define PSTYLE2 PS_SOLID //ОЕПН2
#define BSTYLE1 HS_VERTICAL //ЙХЯРЭ1
#define BSTYLE2 HS_FDIAGONAL //ЙХЯРЭ2
HMENU hMenu; //ДЕЯЙПХОРНП ЦКЮБМНЦН ЛЕМЧ
HMENU hSubMenu1; //ДЕЯЙПХОРНП ЛЕМЧ "тЮИК"
HMENU hSubMenu2; //ДЕЯЙПХОРНП ЛЕМЧ "яОПЮБЙЮ"
int drawMode; //РЕЙСЫХИ ПЕФХЛ ПХЯНБЮМХЪ
COLORREF color1=RGB(255, 128, 0); //ЖБЕР1: НПЮМФЕБШИ
COLORREF color2=RGB(176, 0, 0); //ЖБЕР2: АНПДНБШИ
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpszCmdParam,int nCmdShow)
//ХМХЖХЮКХГЮЖХЪ ЦКЮБМНЦН НЙМЮ
{HWND hWnd;
WNDCLASS WndClass;
MSG Msg;
WndClass.style = CS_HREDRAW|CS_VREDRAW;
WndClass.lpfnWndProc = WndProc;
WndClass.cbWndExtra = 0;
WndClass.cbClsExtra = 0;
WndClass.hInstance = hInst;
WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
WndClass.lpszMenuName = NULL;
WndClass.lpszClassName = "WindowClass";
RegisterClass(&WndClass);
hWnd = CreateWindow("WindowClass", "яНГДЮМХЕ ЦПЮТХВЕЯЙХУ НАЗЕЙРНБ",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL);
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Msg,NULL,0,0))
{TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
int DrawPrimitives (HWND hWnd, HDC hDC)
//пХЯНБЮМХЕ ОПХЛХРХБНБ
{RECT rect;
HPEN hPen1, hPen2;
HBRUSH hBrush1, hBrush2;
LOGBRUSH lBrush;
LOGPEN lPen;
//ГЮДЮМХЕ ОЕПЭЕБ
lPen.lopnWidth.x=0;
lPen.lopnWidth.y=0;
lPen.lopnStyle=PSTYLE1;
lPen.lopnColor=color1;
hPen1=CreatePenIndirect(&lPen);
lPen.lopnStyle=PSTYLE2;
lPen.lopnColor=color2;
hPen2=CreatePenIndirect(&lPen);
//ГЮДЮМХЕ ЙХЯРЕИ
lBrush.lbColor=color1;
lBrush.lbStyle=BS_HATCHED;
lBrush.lbHatch=BSTYLE1;
hBrush1=CreateBrushIndirect(&lBrush);
lBrush.lbColor=color2;
lBrush.lbHatch=BSTYLE2;
hBrush2=CreateBrushIndirect(&lBrush);
GetClientRect(hWnd, &rect);//оНКСВЕМХЕ ОПЪЛНСЦНКЭМХЙЮ ЙКХЕМРЯЙНИ НАКЮЯРХ НЙМЮ
SelectObject(hDC, hPen1);
MoveToEx(hDC, 10, 30, NULL);
LineTo(hDC, rect.right-10, 30); //кХМХЪ
SelectObject(hDC, hBrush1);
Ellipse(hDC, 10, 120, rect.right/2 -10, rect.bottom-10); //щККХОЯ
//ГЮДЮМХЕ ЙННПДХМЮР БЕПЬХМ КНЛЮМНИ
POINT lppt[7];
lppt[0].x=10; lppt[0].y=50;
lppt[1].x=rect.right/4; lppt[1].y=100;
lppt[2].x=rect.right/3; lppt[2].y=50;
lppt[3].x=rect.right*2/4; lppt[3].y=100;
lppt[4].x=rect.right*2/3; lppt[4].y=50;
lppt[5].x=rect.right*3/4; lppt[5].y=100;
lppt[6].x=rect.right-10; lppt[6].y=50;
SelectObject(hDC, hPen2);
Polyline(hDC, lppt, 7); //кНЛЮМЮЪ
SelectObject(hDC, hBrush2);
Rectangle(hDC, rect.right/2+10, 120, rect.right-10, rect.bottom-10); //оПЪЛНСЦНКЭМХЙ
return 0;
}
int Individual(HWND hWnd, HDC hDC)
{RECT rect;
HPEN hPen;
HBRUSH hBrush;
LOGBRUSH lBrush;
GetClientRect(hWnd, &rect);//оНКСВЕМХЕ ОПЪЛНСЦНКЭМХЙЮ ЙКХЕМРЯЙНИ НАКЮЯРХ НЙМЮ
int nX=10; //ЙНКХВЕЯРБН ПЮГАХЕМХИ
int nY=10;
hPen=(HPEN)GetStockObject(BLACK_PEN);
SelectObject(hDC, hPen);
lBrush.lbStyle=BS_SOLID;
int r1,r2,g1,g2,b1,b2;
r1=255; g1=128; b1=0; // RGB ЖБЕР1
r2=176; g2=0; b2=0; // RGB ЖБЕР2
for(int i=0;i<nX;i++)
for(int j=0;j<nY;j++)
{lBrush.lbColor=RGB(r1+(r2-r1)*(i+j)/(nX+nY-2),
g1+(g2-g1)*(i+j)/(nX+nY-2),
b1+(b2-b1)*(