windows编程笔记【八】画笔与画刷

DC/画线/获得窗口指针/画刷/位图 第一部分——画线 第一种方法: HDC声明一个句柄。 GetDC(m_hWnd)返回一个指向m_hWnd句柄的窗口的设备描述表。 MoveToEx和LineTo是两个GDI(图形调和接口——基于类的API)函数。 GetDC()必须和ReleaseDC一起使用,因为Windows中,设备资源是共享的,一个应用程序使用设备后必须释放它。 第二种方法: CDC( 阅读详情

在使用winAPI绘图的话,先要定义画笔和画刷:

他们都是GUI中所定义的图形对象。

HPEN CreatePen(int 样式, int 宽度, RGB(255, 0, 0)); //建立画笔
HBRUSH CreateHatchBrush(int 样式, RGB(255, 0, 0)); //建立阴影画刷
HBRUSH CreateHatchBrush(int 宽度, RGB(0, 255, 0)); //建立单色画刷

 返回值都是H开头,说明他们都是句柄,我们把这个句柄在绘图DC里使用它们即可。

HGDIOBJ SelectObject(HDC hdc,HGDIOBJ GDI对象); //选用GDI对象
BOOL DeleteObject(HGDIOBJ GDI 对象); //删除GDI对象

 

首先定义一些变量,定义一下画刷画笔句柄

HPEN hPen[7]; //画笔句柄
HBRUSH hBru[7]; //画刷句柄
int sPen[7] = { PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_NULL,PS_INSIDEFRAME };//画笔样式
int sBru[6] = { HS_VERTICAL,HS_HORIZONTAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_BDIAGONAL };//画刷样式

 

新建两个函数:

void MyPrint(HDC hdc)
{


	int y, x1, x2;
	for (int i = 0; i < 7; i++)
	{
		y = (i + 1) * 30;
		SelectObject(hdc, hPen[i]);
		MoveToEx(hdc, 30, y, NULL); //移动目标
		LineTo(hdc, 100, y); //画线
	}
	x1 = 120;
	x2 = 180;

	for (int i = 0; i < 7; i++)
	{

		SelectObject(hdc, hBru[i]);
		Rectangle(hdc, x1, 30, x2, y); //画矩形

		x1 += 70;
		x2 += 70;
	}
}

BOOL InitInstance(HINSTANCE hinstance)
{
	HWND hwnd;
	HDC hdc;
	if (!(hwnd = CreateWindowEx(NULL,
		"WINCLASS1",	//winclass.lpszClassName设置的字符,是类的别名。
		"YouWindows",	//窗口的名称
		WS_OVERLAPPEDWINDOW | WS_VISIBLE,	//一些窗口属性
		0, 0,			//窗口位置
		600, 450,		//窗口宽高
		NULL,			//父窗口句柄
		NULL,			//附属窗口句柄
		hinstance,		//WinMain第一个实参,程序句柄。
		NULL			//null就可以了
	)))
		return false;

	for (int i = 0; i < 7; i++)
	{
		hPen[i] = CreatePen(sPen[i], 1, RGB(255, 0, 0));
		if (i != 6)
			hBru[i] = CreateHatchBrush(sBru[i], RGB(255, 0, 0));
		else
			hBru[i] = CreateHatchBrush(sBru[i], RGB(0, 255, 0));
	}

	hdc = GetDC(hwnd);
	MyPrint(hdc);
	ReleaseDC(hwnd, hdc);
}

 即打印出画刷

Windows屏幕画笔工具:功能强大且易用 Windows屏幕画笔工具是Windows操作系统自带的一个简洁而功能强大的绘图应用,它为用户提供了一个高效的界面,通过它可以方便地在屏幕上进行图形绘制、文本标注、截图编辑等操作。它不仅适合个人用户在需要快速进行视觉说明时使用,同时它也能在团队协作中发挥巨大作用,帮助成员之间高效沟通设计思路和反馈。本文将详细介绍屏幕画笔的各个基础功能,为后续章节中深入探讨其高级技巧和应用案例打下坚实的基础。矩形框是Windows屏幕画笔工具中非常实用的一个功能,它允许用户快速地创建标准的矩形区域。 阅读详情

相关推荐

利用C++实现简单画图程序与画笔画刷的使用

MFC是一个包含类库的框架,它封装了许多用于处理窗口、图形设备接口(GDI)、绘图、文档/视图架构等常用功能的类。通过使用MFC,开发者可以快速构建典型的Windows应用程序,而无需深入了解底层Windows API的复杂性。MFC(Microsoft Foundation Classes)是微软公司提供的一套C++类库,用于开发Windows应用程序。它封装了Windows API,让开发者可以更加方便地创建Windows风格的应用程序。MFC主要由窗口、文档和视图三个部分组成。

weixin_35414260的博客 1191

【学习笔记】Windows GDI绘图(八)画笔Pen与画刷Brush

详细示例Pen与Brush的属性与方法

图南堂 1563

Windows 7中画笔工具

从Windows 7 rc中提取的画笔工具,界面与office2007相似,功能有所改进,不妨一试

Windows程序设计:画笔

在Windows程序中,我们用画笔来绘制图形 通过HPEN来创建画笔句柄: static HPEN hPen1, hPen2, hPen3; //画笔句柄 然后通过创建画笔函数创建画笔: HPEN CreatePen( _In_ int fnPenStyle, //画笔的风格 _In_ int nWidth, //占有像素 _In

alex1997222的博客 1840

MoreWindows界面编程第一篇-位图背景与位图画刷

博客文章《Windows界面编程第一篇 位图背景与位图画刷》的配套程序,示范了为对话框添加位图背景,并分别用自贴图和位图画刷来完成。程序注释翔实,可读性强。

WINDOWS画笔程序

说明文档:制作类似windows画笔的程序 功能: 文件—— 新建 打开 保存 另存为 页面设置——画布大小变化 退出 编辑—— 剪切 复制 粘贴 删除选定区域(但是背景变成黑色的了?!) 查看—— 工具栏、状态栏、颜料盒的显示与隐藏 大尺寸、常规尺寸、自定义尺寸的缩放 图像—— 翻转功能实现(包括水平、垂直翻转,以及180度旋转,90与270度旋转理论上亦实现了,只是速度有些慢,只能适用于小图形) 图像反色 颜色—— 编辑颜色功能实现 帮助—— 弹出信息框 界面: 突出显示按件 鼠标移动显示坐标 使用铅笔在画布上任意绘画,且可以变化颜色 橡皮擦功能实现(橡皮擦大小的变化可以通过改变笔刷粗细后改变) 拾色器功能实现 油漆桶功能实现 直线、笔刷功能实现 屏幕输入文字 放大镜功能实现!!(——强烈注意:它又名奇异镜> <……即使用之后,所有画图功能(比如颜色反色出现,橡皮变成铅笔……填充的色块可以叠加……,O(∩_∩)O哈哈~所以使用之后,记得退出程序,重新开启……) 可以画空心或实心的矩形 可以画空心或实心的椭圆和圆 喷枪功能实现(只是在画笔变粗时,效果会有些恶心……,建议通过笔刷,选择1,然后使用) 另:支持各种快捷键,如ctrl+S/ctrl+x 等,详情请见菜单栏。 使用的API函数与ActiveX控件: API函数: GetCursorPos GetDC GetPixel RoundRect ActiveX控件: 通用对话框控件, 位于“Microsoft CommonDialog Control 6.0” 中

使用 Windows 现有画笔

画笔决定了线条的颜色、宽度和样式,样式可以是实线、点线或者虚线。画笔的默认设备环境是 BLACK_PEN 。该画笔会绘制一条宽度为1个像素的黑色线条。BLACK_PEN 是 Windows 提供的三种 ”备用画笔“ ( stock pen )的一种。另外两种分别是 WHITE_PEN 和 NULL_PEN  。NULL_PEN  表示不绘制任何图形的画笔。你也可以创建自己的画笔。

chaoyuan899的专栏 2821

HFSS - 双频微带天线设计与仿真

一、设计指标 中心频率:1.9GHz、2.45GHz 匹配情况:中心频率处S11S_{11}S11​参数小于-20dB 介质板厚度:1.6mm 介质板介电常数:3.8 馈电方式:50Ω\OmegaΩ同轴线馈电 二、双频微带天线 获得双频工作的一种最简单的方法是辐射贴片的长度对应-一个频率谐振,其宽度对应另一个频率谐振,然后从对角线的一角馈电,就能使同一个辐射贴片工作于两个频率上。其结构如下图所示。 从图中可以得知,x轴上的A点(x,0)为激发TM10_{10}10​模式的50Ω\OmegaΩ馈电点,由

MaxWei 1万+

windows编程中画笔与画刷

#include #include //声明窗口函数原型 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); BOOL Initinstance(HINSTANCE hInstance,int nCmdShow); void MyPaint(HDC hdc); ATOM MyRegisterClass(HINSTANCE hInstance);

贰圣 2441

深入MIPI DSI显示技术栈 (三) DSI vs CSI-2:孪生协议的本质差异

MIPI协议中的DSI与CSI-2存在本质差异:DSI为输出导向协议(Host→Display),用于屏幕控制和画面传输;CSI-2为输入导向协议(Sensor→Host),专攻图像采集。二者在包结构、同步机制、物理层优化等方面均有显著区别:DSI支持命令包和BLLP包,CSI-2具备嵌入式数据包;DSI时钟模式以Burst为主,CSI-2支持Continuous模式。典型场景中,二者协同工作(如手机相机预览),需注意时序同步和延迟控制。设计混合系统时,需合理规划虚拟通道和物理层资源,充分发挥这对&quot

GateWorld的博客 2106

SqlSugar避坑指南:C#操作MySQL时你可能会忽略的5个细节

本文分享了使用C#和SqlSugar框架操作MySQL数据库时的实战避坑指南。针对连接配置、实体映射、查询性能、事务处理等关键环节,深入剖析了5个容易被忽略但至关重要的细节,帮助开发者提升项目稳定性和执行效率,避免常见陷阱。

delta的博客 276

Windows 编程,画笔画刷以及几何图形的绘制

Windows编程,画笔画刷的介绍 标题画笔,可以用以下代码新建一个画笔对象: HPEN hpen = CreatePen(PS_SOLID, 1, RGB(255,0,0)); 可以看到,画笔的CreatePen()有三个参数(parameter),第一个参数表示画笔类型,第二个参数表示画笔宽度(注意以pixel为单位),第三个参数是画笔颜色。 除了上述的方法之外,还可以通过这两种方法获得画笔...

Windows 编程,画笔画刷以及几何图形的绘制 2445

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码)

本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。

gin88的博客 262

画笔和画刷

在使用画笔和画刷等GDI(Graphics Device Interface)对象时,应该遵守以下三条规则:         1. 最后要删除自己建立的所有GDI对象;         2. 当GDI对象正在一个有效的设备内容中使用时,不要删除它;         3. 不要删除现有对象。 画笔和画刷都是通过句柄来进行使用的        画笔:HPEN        画刷:H

worldbit的博客 956

k230 +canMV+ LVGL控件 仿手表表盘触摸屏滚动、选中后弹窗效果完整示例程序

现在智能手表用的越来越多,其交互方式比较有特点,现在k230开发板上,基于LVGL(Light and Versatile Graphics Library)编写一个嵌入式GUI应用程序,使用LVGL配合触摸屏实现模仿智能手表的表盘滚动效果,实际效果如下:程序使用LVGL图形库和MediaManager程序,创建带有触摸屏交互的GUI应用。程序主要功能包括显示初始化、LVGL初始化、创建GUI界面(包含一个可滚动的按钮列表,每个按钮点击会弹出消息框),以及处理触摸屏输入。

weixin_47446386的博客 1175

抖音 webmssdk 签名算法解析:X-Dynosaur / X-Gnarly / X-Bogus 生成原理

它只依赖设备指纹/环境编码与随机数,与 query 内容无关,因此可以独立于 Dynosaur/Gnarly 生成。

猫敷雪 202

GDI绘图:画笔、画刷与画布的艺术

这篇文章用通俗易懂的比喻解释了Windows GDI绘图的基本概念:画笔(Pen)用于绘制线条,画刷(Brush)用于填充区域,颜料(Color)提供颜色选择,画布(DC)作为绘制载体。文章通过"画家作画"的类比,将编程概念形象化,并配以简明代码示例,展示了如何用GDI绘制一个红边蓝底的矩形。全文150字以内,生动阐释了GDI绘图的核心原理:工具(笔刷)、材料(颜色)与载体(画布)的协同工作。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 873

远程声控系统(MATLAB代码见优快云资源)

远程声控系统技术报告 一、题目要求 实现一个远程声音控制系统。首先采集不同的语音指示信号,进行适当压缩;然后通过噪声信道实现远程传输,远端接收后再通过适当计算识别出是何指示,最后送入一个处于未知状态、但能控/能观的控制系统,完成不同的控制动作。 二、问题分解与解决思路 2.1 系统设计 实验中以汉语数字语音1~9作为指令,数字语音“1”代表一号指令,数字语音“2”代表二号指令,依次类推。发送端发出语音“1”,发送端对应的数字语音文件为“1b.wav”,通过信源编码对语音进行压缩编码,然后进行信道编码并进行基

业精于勤,荒于嬉 5735

Windows程序设计--画笔和画刷

画笔和画刷是重要的GDI对象,因为不管你画什么图形都需要画笔和画刷,虽然多数情况下是系统默认的。Windows提供的三种备用画笔(stock pen)白色画笔:WHITE_PEN 黑色画笔:BLACK_PEN //这是默认的画笔 空画笔:NULL_PEN使用画笔需要以下几个函数://获取预定义的备用笔、刷子、字体或者调色板的句柄 //HGDIOBJ就是GDI对象的句柄HGDIOBJ GetSt

_ACME_的博客 3358

华为OD机试双机位C卷:挑选宝石 (C/C++/Python/JAVA/JS/GO)

华为OD机试双机位C卷 挑选宝石,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-挑选宝石,华为OD机考-挑选宝石。

qq_45776114的博客 1500

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[学习笔记] Windows编程——GDI——(二)画刷

若要创建图案画刷,应用程序必须首先创建位图。创建位图后,通过调用或函数来创建图案画刷。

cxsydzn的博客 753

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

windows核心编程--2、windows的画笔画刷以及一些简单的应用

一、前言     该系列前几篇:      windows核心编程–1、使用vs2019编写第一个win32项目 二、相关工具     IDE:vs2019     其他格式图片转ico脚本(贴在文末) 三、实验要求     1、改变win32程序标题栏图标、鼠标样式以及任务栏图标。     2、给菜单栏添加一个退出记事本的子项,并实现该功能。     3、使用自创的画笔以及画刷绘制线、多边形...

windy_ll的博客 843

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

创建画刷的几种形式

HBRUSH hbr; 第一种: hbr= CreateSolidBrush(RGB(255,0,0));                       //创建单色的画刷 第二种: hbr= (HBRUSH)GetStockObject(BLACK_BRUSH);   //只能取特定颜色的画刷,如BLACK_BRUSH,GRAY_BRUSH刷 第三种: hbr= CreatePa

奔跑吧,蜗牛! 1万+

Windows编程画太极图

用Windows API 画太极图 重要的API函数 Ellipse() : 画椭圆 API原型  BOOL Ellipse(       HDC hdc,       int xLeft,       int yTop,       int xRight,       int yBottom,  );   Arc() : 画圆

weixin_44589374的博客 1607

Windows Phone开发(31):画刷

画刷是啥玩意儿?哈,其实画刷是用来涂鸦,真的,没骗你,至于你信不信,反正我信了。 本文通过价绍几个典型的画刷,使你明白画刷就是用来涂鸦的。   一、纯色画刷SolidColorBrush。 这个家伙比较“纯”,当然它不是装纯,的确很纯,纯到只用一种颜色,所以叫“单色画刷”。 来,看看这个示例,我们画一个矩形(放在一个Canvas中),然后用这个纯家伙来打扮一下。

老周——“易之道” 4625
上一篇: 算法数据结构笔记 深度优先搜索
下一篇: windows编程笔记【九】使用图片资源
崔佳宇_
崔佳宇_ 优质创作者: 嵌入式与硬件开发技术领域 优质创作者: 嵌入式与硬件开发技术领域
博客等级 码龄10年 1万+粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值