`
java-mans
  • 浏览: 11635576 次
文章分类
社区版块
存档分类
最新评论

创建自己的画刷

 
阅读更多

绘制填充区域:Windows提供了7个函数:

函数名称 图形
Rectangle 直角矩形
Ellipse 椭圆
RoundRect 圆角矩形
Chord 一个弓形
Pie 扇形
Polygon 多边形
PolyPolygon 多个多边形

使用画刷的方法很多,下面罗列一些常见的:

方法1

HBRUSH hbrush;
hbrush=GetStockObject(hdc,hbrush);
SelectObject(hdc,hbrush);
SelectObject(hdc,GetStockObject(NULL_BRUSH));//不需要填充
SelectObject(hdc,GetStockObject(NULL_PEN));//不需要边框线


方法2

hbrush=CreateSolidBrush(crColor);
SelectObject(hdc,hbrush);
//crColor可以用RGB生成


方法3

hbrush=CreateHatchBrush(iHatchStyle,crColor);
SelectObject(hdc,hbrush);//iHatchStyle可以选择的参数如下://可以使用SetBkColor,SetBkMode来填充线与线之间的空白。


方法4

使用:
CreatePatternBrush和CreateDIBPatternBrushPt来建立自己的位图


方法5

LOGBRUSH logbrush;
hbrush=CreateBrushIndirect(&logbrush);

下面看看代码,看看效果图:

case WM_PAINT:
			hdc=BeginPaint(hwnd,&ps);
			//GetClientRect(hwnd,&rect);
			
			
			hbrush=(HBRUSH)GetStockObject(GRAY_BRUSH);
			SelectObject(hdc,hbrush);
			//SelectObject(hdc,GetStockObject(NULL_PEN));
			Ellipse(hdc,500,500,300,200);

			hbrush=CreateSolidBrush(RGB(255,0,0));
			SelectObject(hdc,hbrush);
			Rectangle(hdc,0,0,100,100);

			hbrush=(HBRUSH)GetStockObject(LTGRAY_BRUSH);
			SelectObject(hdc,hbrush);
			Rectangle(hdc,100,100,200,200);

			SetBkMode(hdc,OPAQUE);
			SetBkColor(hdc,RGB(255,0,0));
			hbrush=CreateHatchBrush(HS_BDIAGONAL,RGB(0,255,0));
			SelectObject(hdc,hbrush);
			Rectangle(hdc,200,200,300,300);

		
			/*hbrush=(HBRUSH)CreateBrushIndirect(&logbrush);
			SelectObject(hdc,hbrush);
			Rectangle(hdc,200,200,300,300);*/


			EndPaint(hwnd,&ps);
			return 0;
case WM_DESTROY:
		
			
			PostQuitMessage(0);
			return 0;



分享到:
评论

相关推荐

    画刷的用法

    除了创建自定义颜色的画刷外,Windows还提供了一系列预定义的画刷,可以通过`GetStockObject`函数来获取这些画刷。例如,获取黑色画刷的代码如下: ```cpp hbr = (HBRUSH)GetStockObject(BLACK_BRUSH); // 获取黑色...

    易语言GDI用画刷创建画笔源码

    - **创建画刷**:`CreateSolidBrush`用于创建一个填充纯色的画刷,`CreateHatchBrush`可以创建带有图案的画刷,而`CreatePatternBrush`则允许使用位图作为填充模式。 - **设置画刷颜色**:对于固色画刷,可以通过`...

    VC中画刷的使用(详细)

    总结,VC++中的画刷使用涉及了GDI的图形操作,包括画刷的创建、选择、填充和管理。通过熟练掌握这些知识点,开发者可以创建出丰富多彩的图形界面,提升用户体验。文档“画刷的使用.doc”应当提供了具体的代码示例和...

    GDI绘制各种图形、应用画笔-画刷类库

    `CreateSolidBrush`可以创建一个单色的画刷,`CreateHatchBrush`可以创建有图案的画刷,`CreatePatternBrush`则允许使用位图作为填充模式。同样,`SelectObject`函数用于在设备上下文中选择画刷。 5. 设备上下文...

    vc++中画刷代码相关实例

    接下来,通过`SelectObject`函数将创建的画刷`hBrush1`选入设备上下文(Device Context,DC),并保存旧画刷到`hOldBrush`,以便后续恢复: ```cpp hOldBrush = (HBRUSH)SelectObject(hDC, hBrush1); ``` 完成绘图...

    GDI纹理画刷变形.rar

    源代码可能包含了创建纹理画刷、设置变换矩阵、应用变换并绘制图形的步骤。 例如,源码可能有以下关键部分: 1. 加载位图资源,创建纹理画刷对象。 2. 定义一个变换矩阵,例如通过缩放因子改变宽度和高度。 3. 使用...

    visual c++中的画刷类CBrush使用实例

    通过CBrush,开发者可以方便地创建不同类型的画刷,包括实心画刷、带图案的画刷等。画刷在图形绘制过程中起到非常关键的作用,它可以用来填充各种图形,如矩形、圆形等。 #### 三、CBrush构造函数详解 CBrush类提供...

    空话刷画矩形.txt

    这里定义了两个画刷指针,并通过`GetStockObject(NULL_BRUSH)`获取空画刷的句柄,然后使用`CBrush::FromHandle`函数创建一个空画刷对象。 ```cpp CPen* pOldPen = dc.SelectObject(&pen); // 将新画笔选入设备上...

    vb GDI+ 多颜色渐变画刷填充图形

    本教程将深入讲解如何利用GDI+创建多颜色渐变画刷并填充图形。 首先,理解GDI+中的画刷是非常关键的。画刷在GDI+中用于定义填充图形的颜色和模式。其中,渐变画刷允许我们创建平滑过渡的颜色效果,从一种颜色逐渐...

    位图画刷与透明画刷的使用

    创建一个CDC对象后,可以通过SelectObject函数选择不同的画刷或画笔,使得这些对象与设备关联,进行绘图操作。 接下来,我们详细讨论位图画刷(Bitmap Brush)。位图画刷使用指定的位图图案进行填充,它可以是任何...

    VC++画笔/画刷程序源代码

    "VC++画笔/画刷程序源代码"是一个关于利用VC++进行图形绘制的学习资源,它包含了一些示例代码,用于展示如何在VC6环境下创建一个简单的画笔和画刷应用。 在Windows编程中,画笔(Pen)和画刷(Brush)是两个基本的...

    用c++写的画刷

    用MFC做的一个简单的画刷,主要用到了pan类 做起来简单容易,有利于初学者学习学习

    用内存DC,画刷实现橡皮筋技术

    我们可以创建一个透明的画刷,这样在内存DC上画出的形状就不会覆盖原有的内容,从而实现橡皮筋的效果。当用户释放鼠标后,我们再使用不同的画刷清除用户选择的区域,模拟橡皮擦的功能。 实现橡皮筋技术的基本步骤...

    互动画刷,C++代码

    根据描述中的信息,“C++ 画刷”是一个使用C++语言编写的画刷程序,它能够通过用户输入特定命令来生成字库文件。字库文件通常包含了一组预定义的字符或者图形,这些字符或图形可以被其他程序调用。 #### 二、C++在...

    关于画刷和画笔的综合应用

    在编程领域,尤其是在图形用户界面(GUI)的开发中,画刷和画笔是至关重要的概念,它们在创建和绘制视觉元素时起着基础性的作用。在这个MFC(Microsoft Foundation Classes)小程序中,我们将深入探讨如何利用画笔来...

    使用画刷绘图

    //位图画刷 CBitmap bitmap; //加载位图 bitmap.LoadBitmap... //创建画刷 CBrush brush(&bitmap); //创建并获得设备描述表 CClientDC dc(this); //矩形区域 dc.FillRect(CRect(m_ptOrigin,point),&brush);

    MFC画笔画刷使用

    画刷创建可采用`Cbrush`类的构造函数或特定的成员函数。画刷类型包括纯色、阴影和图案。 #### 构造函数创建画刷: - 纯色画刷:`CBrush brush(RGBColor);` - 阴影画刷:`CBrush brush(BrushStyle, RGBColor);` - ...

    win GDI 画刷的使用

    创建画刷通常使用`CreateSolidBrush`函数,它接受一个RGB颜色值作为参数,创建一个填充单一颜色的实心画刷。例如,你可以创建一个红色画刷: ```c++ HBRUSH hRedBrush = CreateSolidBrush(RGB(255, 0, 0)); ``` 画...

    绘制对话框画刷

    在这个主题下,我们将深入探讨画刷的基本概念、如何创建和使用画刷以及如何在对话框中进行图形绘制。 首先,我们需要了解什么是画刷。在GDI中,画刷是一个图形对象,用于控制颜色或模式的填充。当你需要填充一个...

Global site tag (gtag.js) - Google Analytics