利用绘图函数创建填充区

来源:互联网 发布:网络语大大是什么意思 编辑:程序博客网 时间:2024/06/08 18:29

#include <windows.h>

-------------
LRESULT CALLBACK 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);//设置画笔为系统定义的黑色画笔
  SelectObject(hDC,hPen);//选择画笔
  hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);//深灰色画刷
  SelectObject(hDC,hBrush);//选择画刷
  RoundRect(hDC,50,50,100,150,15,15);//圆角矩形(绘图函数
  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);
 default://其他消息处理程序
  return(DefWindowProc(hWnd,iMessage,wParam,lParam));
 }
}

BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)//初始化窗口
{
 HWND hWnd;
 //生成窗口
 hWnd=CreateWindow("willfill","填充示例程序",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="willfill";
 WndClass.lpszMenuName=NULL;
 WndClass.style=CS_HREDRAW|CS_VREDRAW;
 return RegisterClass(&WndClass);
}
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);
  DispatchMessageA(&Message);
 }
 return Message.wParam;//
}

 

运行结果

 

原创粉丝点击