Windows程序设计——画圆

简介: Windows程序设计——画圆

代码如下:


#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 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;//定义指向包含绘图信息的结构体变量
  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);
  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);
}


相关文章
|
6月前
|
消息中间件 编译器 API
Windows窗口程序
Windows窗口程序
|
6月前
|
Windows
实现Windows程序的数据更新
实现Windows程序的数据更新
|
6月前
|
Windows
构建布局良好的Windows程序
构建布局良好的Windows程序
|
6月前
|
C# Windows
初识Windows程序
初识Windows程序
|
6月前
|
Java Linux Windows
windows实现自动部署jar包运行程序
windows实现自动部署jar包运行程序
272 0
|
2月前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
25天前
|
安全 API C#
C# 如何让程序后台进程不被Windows任务管理器强制结束
C# 如何让程序后台进程不被Windows任务管理器强制结束
50 0
|
2月前
|
安全 网络安全 API
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
基于WMI更新Windows系统信息采集程序sysInfo的一些收获
|
2月前
|
小程序 Windows
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
MASM32编写的程序在Windows 7,10下运行正常,但在Win XP下运行时只闻其声不见其形的故障
|
3月前
|
JavaScript Windows
electron程序运行在某些 windows 上白屏
electron程序运行在某些 windows 上白屏