Windows編程——萬花筒繪製

來源:互聯網
上載者:User

標籤:vc++   windows繪圖   windows編程   

#include<windows.h>#include<stdlib.h>#include<string.h>#include<math.h>#define Pi 3.1415926long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);BOOL InitWindowsClass(HINSTANCE hInstance);BOOL InitWindows(HINSTANCE hInstance, int nCmdShow);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){MSG Message;if (!InitWindowsClass(hInstance))return FALSE;if (!InitWindows(hInstance, nCmdShow))return FALSE;while (GetMessage(&Message, 0, 0, 0)){TranslateMessage(&Message);DispatchMessage(&Message);}return Message.wParam;}long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam){HDC hDC;   HPEN hPen;PAINTSTRUCT PtStr; int n = 25;POINT points[25];double angel = 2 * Pi / n;for (int i = 0; i < n; i++){points[i].x = static_cast<long>(320 + 180 * cos(i*angel));points[i].y = static_cast<long>(250 + 180 * sin(i*angel));}switch (iMessage)  {case WM_PAINT:    hDC = BeginPaint(hWnd, &PtStr);for (int i = 0; i < 25; i++){            hPen = (HPEN)GetStockObject(NULL_PEN);     SelectObject(hDC, hPen);    LineTo(hDC, points[i].x, points[i].y);  DeleteObject(hPen); if (i == 0){for (int j = 1; j < n; j++){switch (j % 6){case 1:case 2:hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); break;case 3:case 4:hPen = CreatePen(PS_SOLID, 1, RGB(0, 255, 0)); break;case 5:case 0:hPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255)); break;}SelectObject(hDC, hPen);  LineTo(hDC, points[j].x, points[j].y);MoveToEx(hDC, points[i].x, points[i].y, NULL);DeleteObject(hPen);    }}else{for (int j = i + 1; j < n; j++){switch (j % 6){case 1:case 2:hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));break;case 3:case 4:hPen = CreatePen(PS_SOLID, 1, RGB(0, 255, 0));break;case 5:case 0:hPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 255)); break;}SelectObject(hDC, hPen);  LineTo(hDC, points[j].x, points[j].y);MoveToEx(hDC, points[i].x, points[i].y, NULL);DeleteObject(hPen);    Sleep(50);}}}EndPaint(hWnd, &PtStr);  return 0;case WM_DESTROY: PostQuitMessage(0);return 0;default:return(DefWindowProc(hWnd, iMessage, wParam, lParam));}}BOOL InitWindows(HINSTANCE hInstance, int nCmdShow) {HWND hWnd;hWnd = CreateWindow("WinFill",    "                                                                         萬花筒",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if (!hWnd)return FALSE;ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);return TRUE;}BOOL InitWindowsClass(HINSTANCE hInstance) {WNDCLASS WndClass;WndClass.cbClsExtra = 0;WndClass.cbWndExtra = 0;WndClass.hbrBackground = (HBRUSH)(GetStockObject(WHITE_BRUSH));WndClass.hCursor = LoadCursor(NULL, IDC_ARROW);WndClass.hIcon = LoadIcon(NULL, "END");WndClass.hInstance = hInstance;WndClass.lpfnWndProc = WndProc;WndClass.lpszClassName = "WinFill";WndClass.lpszMenuName = NULL;WndClass.style = CS_HREDRAW | CS_VREDRAW;return RegisterClass(&WndClass);}<img src="http://img.blog.csdn.net/20150509193843627?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTm9vYl9m/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="http://img.blog.csdn.net/20150509193702193" alt="" /><img src="http://img.blog.csdn.net/20150509193713784" alt="" /><img src="http://img.blog.csdn.net/20150509193913860" alt="" /><img src="http://img.blog.csdn.net/20150509193919148" alt="" /><img src="http://img.blog.csdn.net/20150509193924530" alt="" /><img src="http://img.blog.csdn.net/20150509193929210" alt="" /><img src="http://img.blog.csdn.net/20150509193934530" alt="" /><img src="http://img.blog.csdn.net/20150509193939818" alt="" /><img src="http://img.blog.csdn.net/20150509193948102" alt="" /><img src="http://img.blog.csdn.net/20150509193953219" alt="" /><img src="http://img.blog.csdn.net/20150509193803688" alt="" /><img src="http://img.blog.csdn.net/20150509193807775" alt="" /><img src="http://img.blog.csdn.net/20150509193811785" alt="" /><img src="http://img.blog.csdn.net/20150509193815482" alt="" /><img src="http://img.blog.csdn.net/20150509194016666" alt="" />

Windows編程——萬花筒繪製

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.