代碼如下﹕
#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);
HWND hWndMain; //Gloable handler in the whole programint 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;
HBRUSH hBrush;
HPEN hPen;
PAINTSTRUCT PtStr;
double dfRadious0=100.0;
double dfRadious1;
POINT lpOuterPoints[5],lpInnerPoints[5];
POINT lpTriangle[3];
dfRadious1=dfRadious0*sin(0.1*PI)/sin(126.0/180*PI);
for (int i=0;i<5;i++)
{
lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*PI));
lpOuterPoints[i].y=(long)(dfRadious0*sin(i*72.0/180*PI));
lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*PI+36.0/180*PI));
lpInnerPoints[i].y=(long)(dfRadious1*sin(i*72.0/180*PI+36.0/180*PI));
}
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
SetMapMode(hDC,MM_ANISOTROPIC);
SetWindowOrgEx(hDC,-100,-100,NULL);
hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));
SelectObject(hDC,hPen);
Polygon(hDC,lpOuterPoints,5);
for(i=0;i<5;i++);
{
lpTriangle[0]=lpOuterPoints[i%5];
lpTriangle[1]=lpInnerPoints[i%5];
lpTriangle[2]=lpOuterPoints[(i+1)%5];
hBrush=CreateSolidBrush(RGB(i*10,i*20,i*30));
SelectObject(hDC,hBrush);
Polygon(hDC,lpOuterPoints,5);
lpTriangle[2]=lpInnerPoints[(i+4)%5];
hBrush=CreateSolidBrush(RGB(i*40,i*30,i*20));
SelectObject(hDC,hBrush);
Polygon(hDC,lpTriangle,3);
}
hBrush=CreateSolidBrush(RGB(255,255,255));
SelectObject(hDC,hBrush);
Polygon(hDC,lpInnerPoints,5);
MoveToEx(hDC,lpOuterPoints[0].x,lpOuterPoints[0].y,NULL);
for(i=1;i<=5;i++)
{
hPen=CreatePen(PS_SOLID,1,RGB(0,i*51,0));
SelectObject(hDC,hPen);
LineTo(hDC,lpOuterPoints[(i=2)%5].x,lpOuterPoints[(i+2)%5].y );
}
hPen=(HPEN)(GetStockObject(PS_NULL));
DeleteObject(hPen);
DeleteObject(hBrush);
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( "AAA",
"AADFSDFSD",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd) //Returns to a FALSE value when not be able to create the windows
return FALSE;
hWndMain=hWnd;
ShowWindow(hWnd,nCmdShow); //show the window
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,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="Ploygon";
WndClass.lpszMenuName=NULL;
WndClass.style=0;
return RegisterClass(&WndClass);
}//在VC下編譯﹐但是不能顯示出窗口﹐在單步執行時﹐CREATEWINDOW返回句柄為0,不知是什么原因?
#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);
HWND hWndMain; //Gloable handler in the whole programint 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;
HBRUSH hBrush;
HPEN hPen;
PAINTSTRUCT PtStr;
double dfRadious0=100.0;
double dfRadious1;
POINT lpOuterPoints[5],lpInnerPoints[5];
POINT lpTriangle[3];
dfRadious1=dfRadious0*sin(0.1*PI)/sin(126.0/180*PI);
for (int i=0;i<5;i++)
{
lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*PI));
lpOuterPoints[i].y=(long)(dfRadious0*sin(i*72.0/180*PI));
lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*PI+36.0/180*PI));
lpInnerPoints[i].y=(long)(dfRadious1*sin(i*72.0/180*PI+36.0/180*PI));
}
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
SetMapMode(hDC,MM_ANISOTROPIC);
SetWindowOrgEx(hDC,-100,-100,NULL);
hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));
SelectObject(hDC,hPen);
Polygon(hDC,lpOuterPoints,5);
for(i=0;i<5;i++);
{
lpTriangle[0]=lpOuterPoints[i%5];
lpTriangle[1]=lpInnerPoints[i%5];
lpTriangle[2]=lpOuterPoints[(i+1)%5];
hBrush=CreateSolidBrush(RGB(i*10,i*20,i*30));
SelectObject(hDC,hBrush);
Polygon(hDC,lpOuterPoints,5);
lpTriangle[2]=lpInnerPoints[(i+4)%5];
hBrush=CreateSolidBrush(RGB(i*40,i*30,i*20));
SelectObject(hDC,hBrush);
Polygon(hDC,lpTriangle,3);
}
hBrush=CreateSolidBrush(RGB(255,255,255));
SelectObject(hDC,hBrush);
Polygon(hDC,lpInnerPoints,5);
MoveToEx(hDC,lpOuterPoints[0].x,lpOuterPoints[0].y,NULL);
for(i=1;i<=5;i++)
{
hPen=CreatePen(PS_SOLID,1,RGB(0,i*51,0));
SelectObject(hDC,hPen);
LineTo(hDC,lpOuterPoints[(i=2)%5].x,lpOuterPoints[(i+2)%5].y );
}
hPen=(HPEN)(GetStockObject(PS_NULL));
DeleteObject(hPen);
DeleteObject(hBrush);
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( "AAA",
"AADFSDFSD",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd) //Returns to a FALSE value when not be able to create the windows
return FALSE;
hWndMain=hWnd;
ShowWindow(hWnd,nCmdShow); //show the window
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,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="Ploygon";
WndClass.lpszMenuName=NULL;
WndClass.style=0;
return RegisterClass(&WndClass);
}//在VC下編譯﹐但是不能顯示出窗口﹐在單步執行時﹐CREATEWINDOW返回句柄為0,不知是什么原因?
解决方案 »
- 我的对话框怎么不能完全收缩?
- 关于ActiveX控件绘制问题!!
- 为何GetMenu()获取不了CMenu*
- CStringList里面的元素怎么去排序呢?
- 双击工具栏使之浮动
- (Public Const XX = &HFF)这个VB的常量定义加赋值在C++中该如何实现?
- 500分求较好的H263和MPEG4算法源码!!各位大哥请帮忙
- ************************************堆,栈,堆栈********************************
- 请求你们的帮助!!!
- 如何获得客户端机子的IP地址
- 求助:请问我在socket的send函数的参数里应该怎么写我的请求内容?
- 简单链接错误,请问如何解决!!
#include <stdlib.h>
#include<string.h>
#include<math.h>
#define PI 3.1415926
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
ATOM InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,ATOM cls, int nCmdShow);
HWND hWndMain; //Gloable handler in the whole programint WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG Message;
ATOM cls;
if(!(cls = InitWindowsClass(hInstance)))
return FALSE;
if (!InitWindows(hInstance,cls,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;
HBRUSH hBrush;
HPEN hPen;
PAINTSTRUCT PtStr;
double dfRadious0=100.0;
double dfRadious1;
POINT lpOuterPoints[5],lpInnerPoints[5];
POINT lpTriangle[3];
dfRadious1=dfRadious0*sin(0.1*PI)/sin(126.0/180*PI);
for (int i=0;i<5;i++)
{
lpOuterPoints[i].x=(long)(dfRadious0*cos(i*72.0/180*PI));
lpOuterPoints[i].y=(long)(dfRadious0*sin(i*72.0/180*PI));
lpInnerPoints[i].x=(long)(dfRadious1*cos(i*72.0/180*PI+36.0/180*PI));
lpInnerPoints[i].y=(long)(dfRadious1*sin(i*72.0/180*PI+36.0/180*PI));
}
switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
SetMapMode(hDC,MM_ANISOTROPIC);
SetWindowOrgEx(hDC,-100,-100,NULL);
hPen=CreatePen(PS_SOLID,1,RGB(255,0,0));
SelectObject(hDC,hPen);
Polygon(hDC,lpOuterPoints,5);
for(i=0;i<5;i++);
{
lpTriangle[0]=lpOuterPoints[i%5];
lpTriangle[1]=lpInnerPoints[i%5];
lpTriangle[2]=lpOuterPoints[(i+1)%5];
hBrush=CreateSolidBrush(RGB(i*10,i*20,i*30));
SelectObject(hDC,hBrush);
Polygon(hDC,lpOuterPoints,5);
lpTriangle[2]=lpInnerPoints[(i+4)%5];
hBrush=CreateSolidBrush(RGB(i*40,i*30,i*20));
SelectObject(hDC,hBrush);
Polygon(hDC,lpTriangle,3);
}
hBrush=CreateSolidBrush(RGB(255,255,255));
SelectObject(hDC,hBrush);
Polygon(hDC,lpInnerPoints,5);
MoveToEx(hDC,lpOuterPoints[0].x,lpOuterPoints[0].y,NULL);
for(i=1;i<=5;i++)
{
hPen=CreatePen(PS_SOLID,1,RGB(0,i*51,0));
SelectObject(hDC,hPen);
LineTo(hDC,lpOuterPoints[(i=2)%5].x,lpOuterPoints[(i+2)%5].y );
}
hPen=(HPEN)(GetStockObject(PS_NULL));
DeleteObject(hPen);
DeleteObject(hBrush);
EndPaint(hWnd,&PtStr);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
default:
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
}
BOOL InitWindows(HINSTANCE hInstance, ATOM cls, int nCmdShow)
{
HWND hWnd;
hWnd=CreateWindow( (LPCTSTR)cls,
"AADFSDFSD",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd) //Returns to a FALSE value when not be able to create the windows
return FALSE;
hWndMain=hWnd;
ShowWindow(hWnd,nCmdShow); //show the window
UpdateWindow(hWnd);
return TRUE;
}
ATOM 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,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="Ploygon";
WndClass.lpszMenuName=NULL;
WndClass.style=0;
return RegisterClass(&WndClass);
}