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);
}




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Substance Painter 画高度贴图

    Substance Painter 画高度贴图SP可以画出来高度图,而省去了建模的流程。很方便!然后用默认的画笔和Alpha可以得到很细腻的效果,最后导出法线贴图就可以了

    2022年5月26日
    89
  • invoke方法详解

    invoke方法详解JspFragment.invoke方法是JspFragment最重要的方法,利用这个方法可以控制是否执行和输出标签体的内容、是否迭代执行标签体的内容或对标签体的执行结果进行修改后再输出。例如:在标签处理器中如果没有调用JspFragment.invoke方法,其结果就相当于忽略标签体内容;在标签处理器中重复调用JspFragment.invoke方法,则标签体内容将会被重复执行;若想

    2022年6月5日
    64
  • WebStorm安装教程【2022年新版图解】

    WebStorm安装教程【2022年新版图解】对于入门JavaScript开发的者,最重要的就是安装WebStorm软件,一款非常优秀的JavaScript工具,在互联网上查询目前还没有一篇写得比较详细的WebStorm教程。今天我将使用WebStorm最新2022年版本,从下载到安装以及创建项目带大家完整的走一遍;一、WebStorm下载1、百度搜索查询WebStorm官网;认准官网网址,别在下载站下载可能会捆绑很多垃圾软件;2、打开WebStorm官网主介绍页面,点击“Download”进入下载页面;3、点击“Download”后就跳

    2022年6月16日
    85
  • vue 调用子组件方法失败_Vue子组件调用父组件的方法及常见问题「建议收藏」

    vue 调用子组件方法失败_Vue子组件调用父组件的方法及常见问题「建议收藏」1.子组件内不允许直接修改父组件传过来的参数。错误实例:子组件代码直接对data参数进行修改,则会提示错误。vue.runtime.esm.js?2b0e:619[Vuewarn]:Avoidmutatingapropdirectlysincethevaluewillbeoverwrittenwhenevertheparentcomponentre-render…

    2022年10月2日
    3
  • tαptαp安装下载_掌上生活app下载安装

    tαptαp安装下载_掌上生活app下载安装环境要求HttpRunner是一个基于Python开发的测试框架,可以运行在macOS、Linux、Windows系统平台上。这里使用macOS系统进行演示对于python版本要求:py

    2022年7月31日
    6
  • 【OpenCV】Canny 边缘检测

    【OpenCV】Canny 边缘检测Canny边缘检测算法1986年,JOHNCANNY提出一个很好的边缘检测算法,被称为Canny编边缘检测器[1]。Canny边缘检测根据对信噪比与定位乘积进行测度,得到最优化逼近算子,也就是Canny算子。类似与LoG边缘检测方法,也属于先平滑后求导数的方法。使用Canny边缘检测器,图象边缘检测必须满足两个条件:能有效地抑制噪声;必须尽量精确确定边缘的位置。算

    2022年5月29日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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