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…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

代码如下:


#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);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170966.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Ubuntu skills

    Ubuntu skills

  • 互联网金融学习总结(5)——市场主流的风控模型简要学习总结

    互联网金融学习总结(5)——市场主流的风控模型简要学习总结分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程一、市场调研目前市面主流的风控模型1、互联网金融前10名排行榜(数据截止日期2017-09-12)互联网金融公司排名分别是蚂蚁金服、陆金所、京东金融、苏宁金融、百度金融、腾讯理财通、宜信、钱大掌柜、万达金融和网易理财。1.1蚂蚁金服1.1.1大数据技术对…

  • 9-ICMP报文种类「建议收藏」

    9-ICMP报文种类「建议收藏」1.ICMP报文种类  ICMP报文的种类分为两种:一种是差错报告报文,另一种是查询报文。  对于差错报告报文来说,ICMP总是把差错报文报告给发送数据源端(源主机)。比如:主机A给主机发送一个数据,结果这个数据在网络传输过程中出错了,然后ICMP协议的机制就会返回一个差错报告给主机A(相当于把数据在传输过程中出错的信息发回给主机A)。2.差错报告报文差错报告报文常见有以下…

  • jquery怎么写ajax_js中ajax写法

    jquery怎么写ajax_js中ajax写法一、第一种:$.post("url",{"func":"getNameAndTime"},function(data,status){ },"json");二、第二种$.ajax({type:"GET",url:"",data:{},

  • Radmin远程管理全解析

    Radmin远程管理全解析

  • js字符串操作方法(js对象转字符串)

    一、关于字符串分割1、slice(start,end);关于这个方法,一定要搞懂四个关键点:(1)截取字符串时不包括下标为end的元素。(2)end是可选参数,没有时,默认从start到结束的所有字符串。(3)String.slice与Array.slice区别。(4)参数为负数时,是如何处理的。其中第3点其实就是在JavaScript中字符串和数组都具有这个方法,它们…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号