C ++ рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдбреНрд░рд╛рдЗрдВрдЧ, рдпрд╛ "рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рднреА рдкрд╛рдЧрд▓ рд╣реВрдБ!" (рдХреЛрдб рдХреА 30 + рд▓рд╛рдЗрдиреЗрдВ)

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╣реИрдмрд░ рдиреЗ "30-рд▓рд╛рдЗрди рдкреЛрд╕реНрдЯ" рдХреЗ рд╕рд╛рде рдмрд╕ рдкреВрд░рд╛ рдХрд┐рдпрд╛:

- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░реЗрд╕рд┐рдВрдЧ (рдХреЛрдб рдХреА 30 рд▓рд╛рдЗрдиреЗрдВ)
- рдЯрд╛рдЗрдиреА рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд░реНрдХрд╛рдиреЙрдЗрдб (рдХреЛрдб рдХреА 30 рд▓рд╛рдЗрдиреЗрдВ)
- рд╢реБрджреНрдз рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рдЫреЛрдЯреЗ рдПрдХреНрд╕реЗрд▓ (рдХреЛрдб рдХреА 30 рд▓рд╛рдЗрдиреЗрдВ)
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛рдВрдк (рдХреЛрдб рдХреА 30 рд▓рд╛рдЗрдиреЗрдВ)
- рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯреЗрдЯреНрд░рд┐рд╕ (30+ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ)

рдлреИрд╢рди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рднреА рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореЗрд░рд╛ рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдмрдВрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реА ++ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреЛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдУрдПрд╕ (рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдирдПрдкреАрдЖрдИ ) рджреНрд╡рд╛рд░рд╛ рдореБрдЭреЗ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддреЛ, рдорд╛рдорд▓реЗ рдХреЗ рд╢рд░реАрд░ рдХреЗ рдХрд░реАрдм:

C ++ рдХреЛрдб (31 рд▓рд╛рдЗрдиреЗрдВ):
#include <Windows.h> #include <vector> #include "resource.h" BOOL CALLBACK PaintProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ POINT t; static std::vector<POINT> pos; HDC hdc; static bool status; PAINTSTRUCT pt; switch(uMsg) { case WM_INITDIALOG: status = false; return TRUE; break; case WM_PAINT: hdc = BeginPaint(hwnd, &pt); (!pos.size()) ? NULL : MoveToEx(hdc, pos[0].x, pos[0].y, NULL); for(size_t i=0;i<pos.size();++i) (pos[i].x==-1 && i<pos.size()-1) ? MoveToEx(hdc, pos[i+1].x, pos[i+1].y, NULL) : LineTo(hdc, pos[i].x, pos[i].y); EndPaint(hwnd, &pt); break; case WM_LBUTTONDOWN: status = true; break; case WM_LBUTTONUP: status = false; tx=-1; pos.push_back(t); break; case WM_MOUSEMOVE: GetCursorPos(&t); ScreenToClient (hwnd, &t); (status) ? pos.push_back(t) : NULL; (status) ? InvalidateRect(hwnd, NULL, true) : NULL; break; case WM_CLOSE: EndDialog(hwnd, 0); break; } return FALSE; } int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, int nCmdShow) { DialogBox(hInst, MAKEINTRESOURCE(IDD_PAINT), NULL, PaintProc); return 0; } 


рдЪреВрдВрдХрд┐ рд╣рдо рдореБрдЦреНрдп рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдкрд┐рдкреЗрдЯ рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП "рд▓реЗрдЖрдЙрдЯ" рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реБрдП, рдореИрдВ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╡рд╛рдж рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЖрдИрдбреА - IDDPPAINT рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╡рд╛рдж рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рджрд░рдЕрд╕рд▓, рдпрд╣ рд╕рдм рдХрд┐рд╕ рд▓рд┐рдП рд╢реБрд░реВ рд╣реБрдЖ:

рдЫрд╡рд┐

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ


- 31 рд▓рд╛рдЗрди C ++ рд╢рд┐рдЯ рдХреЛрдб
- рдкреНрд░рдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп: рдПрд╕рдЯреАрдПрд▓

рдХрдорд┐рдпреЛрдВ


- рдкреНрд░рддреНрдпрдХреНрд╖ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреНрд░реАрди рдХреА рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ (рдмрдЪрдд рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдбрдмрд▓ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред
- рд╡реЗрдХреНрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдПрд▓рд╛ рдкреЗрдВрдЯ ) рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдп рдореЗрдВ, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред

рдкрд░рд┐рдгрд╛рдо


рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рд░рдЦрдирд╛ рдереЛрдбрд╝рд╛ рдЧрд▓рдд рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреЗ рд╕рдордЧреНрд░ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред "рдЕрд╕рд╛рдорд╛рдиреНрдп" рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП +1ред

Source: https://habr.com/ru/post/In202678/


All Articles