API简单绘图


#include<windows.h>
#include<stdlib.h>
#include<string.h>
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               //主函数
(
 HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 LPSTR lpCmdLind,
 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;//定义指向包含绘图信息的结构体变量
 switch(iMessage)  //处理消息
 {
 case WM_PAINT:                   //处理绘图消息
  hDC=BeginPaint(hWnd,&PtStr);
  SetMapMode(hDC,MM_ANISOTROPIC);//设置印象模式
 
  hPen=(HPEN)GetStockObject(BLACK_PEN);//设置画笔为系统预定义的
                                       //黑色画笔
  hBrush=(HBRUSH)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(HOLLOW_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 nCmdShow)   //初始化窗口
{
 HWND hWnd;
 hWnd=CreateWindow("WinFill","填充示例程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,
  CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
 if(!hWnd)
  return FALSE;
 hWndMain=hWnd;
 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);
}
 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值