《windows编程之画圆》由会员分享,可在线阅读,更多相关《windows编程之画圆(4页珍藏版)》请在金锄头文库上搜索。
1、windows编程之画圆#include #include #include long WINAPI WndProc ( HWND hWnd, UINT iMessage, UINT wParam, LONG lParam ); BOOL InitWindowsClass(HINSTANCE hInstance); BOOL InitWindows(HINSTANCE hInstance,int nCmdShow); HWND hWndMain; int WINAPI WinMain long WINAPI WndProc(HWND hWnd,UINT iMessage, /主函数 ( HIN
2、STANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) MSG Message; if(!InitWindowsClass(hInstance) return FALSE; return FALSE; if(!InitWindows(hInstance,nCmdShow) while(GetMessage(&Message,0,0,0) /消息循环 return Message.wParam; TranslateMessage(&Message); DispatchMessage(&Message);
3、UINT wParam,LONG lParam) /定义指向设备的句柄 /定义指向画刷的句柄 /定义指向画笔的句柄 HDC hDC; HBRUSH hBrush; HPEN hPen; PAINTSTRUCT PtStr;/定义指向包含绘图信息的结构体变量 switch(iMessage) /处理消息 case WM_PAINT: /处理绘图消息 hDC=BeginPaint(hWnd,&PtStr); SetMapMode(hDC,MM_ANISOTROPIC); /设置映像模式 hPen=(HPEN)GetStockObject(BLACK_PEN); /黑色画笔 hBrush=(HBRU
4、SH)GetStockObject(DKGRAY_BRUSH); /画刷 SelectObject(hDC,hBrush); /选择画刷 SelectObject(hDC,hPen); /选择画笔 RoundRect(hDC,50,120,100,200,15,15); /绘制圆角矩形 hBrush=(HBRUSH)GetStockObject(LTGRAY_BRUSH); /采用亮灰色画刷 SelectObject(hDC,hBrush); /选择画刷 Ellipse(hDC,150,50,200,150); /绘制椭圆 hBrush=(HBRUSH)GetStockObject(HOLLO
5、W_BRUSH); /虚画刷 SelectObject(hDC,hBrush); /选择画刷 Pie(hDC,250,50,300,100,250,50,300,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 nC
6、mdShow)/初始化窗口 BOOL InitWindowsClass(HINSTANCE hInstance) WNDCLASS WndClass; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); /定义窗口类 HWND hWnd; hWnd=CreateWindow(WinFill, /生成窗口 填充示例程序, WS_OVERLAPPED
7、WINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); return FALSE; if(!hWnd) hWndMain=hWnd; ShowWindow(hWnd,nCmdShow); /显示窗口 UpdateWindow(hWnd); return TRUE; WndClass.hIcon=LoadIcon(NULL,END); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=WndProc; WndClass.lpszClassName=Win
8、Fill; WndClass.lpszMenuName=NULL; WndClass.style=CS_HREDRAW|CS_VREDRAW; return RegisterClass(&WndClass); 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);