#include<windows.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Pi 3.1415926
long 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);
}
<pre name="code" class="cpp">绘制万花筒时的截图:
![](https://img-my.csdn.net/uploads/201505/14/1431592735_7155.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592754_3564.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592754_4423.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592755_5065.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592755_2647.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592778_8120.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592779_6134.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592779_8833.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592779_2937.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592780_9949.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592803_5034.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592803_3670.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592804_5082.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592804_8639.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592805_7225.jpg)
![](https://img-my.csdn.net/uploads/201505/14/1431592814_6321.jpg)
尝试了多次后,终于可以让图片在博客里显示了......