绘制填充区域: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); // 获取黑色...
- **创建画刷**:`CreateSolidBrush`用于创建一个填充纯色的画刷,`CreateHatchBrush`可以创建带有图案的画刷,而`CreatePatternBrush`则允许使用位图作为填充模式。 - **设置画刷颜色**:对于固色画刷,可以通过`...
总结,VC++中的画刷使用涉及了GDI的图形操作,包括画刷的创建、选择、填充和管理。通过熟练掌握这些知识点,开发者可以创建出丰富多彩的图形界面,提升用户体验。文档“画刷的使用.doc”应当提供了具体的代码示例和...
`CreateSolidBrush`可以创建一个单色的画刷,`CreateHatchBrush`可以创建有图案的画刷,`CreatePatternBrush`则允许使用位图作为填充模式。同样,`SelectObject`函数用于在设备上下文中选择画刷。 5. 设备上下文...
接下来,通过`SelectObject`函数将创建的画刷`hBrush1`选入设备上下文(Device Context,DC),并保存旧画刷到`hOldBrush`,以便后续恢复: ```cpp hOldBrush = (HBRUSH)SelectObject(hDC, hBrush1); ``` 完成绘图...
源代码可能包含了创建纹理画刷、设置变换矩阵、应用变换并绘制图形的步骤。 例如,源码可能有以下关键部分: 1. 加载位图资源,创建纹理画刷对象。 2. 定义一个变换矩阵,例如通过缩放因子改变宽度和高度。 3. 使用...
通过CBrush,开发者可以方便地创建不同类型的画刷,包括实心画刷、带图案的画刷等。画刷在图形绘制过程中起到非常关键的作用,它可以用来填充各种图形,如矩形、圆形等。 #### 三、CBrush构造函数详解 CBrush类提供...
这里定义了两个画刷指针,并通过`GetStockObject(NULL_BRUSH)`获取空画刷的句柄,然后使用`CBrush::FromHandle`函数创建一个空画刷对象。 ```cpp CPen* pOldPen = dc.SelectObject(&pen); // 将新画笔选入设备上...
本教程将深入讲解如何利用GDI+创建多颜色渐变画刷并填充图形。 首先,理解GDI+中的画刷是非常关键的。画刷在GDI+中用于定义填充图形的颜色和模式。其中,渐变画刷允许我们创建平滑过渡的颜色效果,从一种颜色逐渐...
创建一个CDC对象后,可以通过SelectObject函数选择不同的画刷或画笔,使得这些对象与设备关联,进行绘图操作。 接下来,我们详细讨论位图画刷(Bitmap Brush)。位图画刷使用指定的位图图案进行填充,它可以是任何...
"VC++画笔/画刷程序源代码"是一个关于利用VC++进行图形绘制的学习资源,它包含了一些示例代码,用于展示如何在VC6环境下创建一个简单的画笔和画刷应用。 在Windows编程中,画笔(Pen)和画刷(Brush)是两个基本的...
用MFC做的一个简单的画刷,主要用到了pan类 做起来简单容易,有利于初学者学习学习
我们可以创建一个透明的画刷,这样在内存DC上画出的形状就不会覆盖原有的内容,从而实现橡皮筋的效果。当用户释放鼠标后,我们再使用不同的画刷清除用户选择的区域,模拟橡皮擦的功能。 实现橡皮筋技术的基本步骤...
根据描述中的信息,“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);
画刷创建可采用`Cbrush`类的构造函数或特定的成员函数。画刷类型包括纯色、阴影和图案。 #### 构造函数创建画刷: - 纯色画刷:`CBrush brush(RGBColor);` - 阴影画刷:`CBrush brush(BrushStyle, RGBColor);` - ...
创建画刷通常使用`CreateSolidBrush`函数,它接受一个RGB颜色值作为参数,创建一个填充单一颜色的实心画刷。例如,你可以创建一个红色画刷: ```c++ HBRUSH hRedBrush = CreateSolidBrush(RGB(255, 0, 0)); ``` 画...
在这个主题下,我们将深入探讨画刷的基本概念、如何创建和使用画刷以及如何在对话框中进行图形绘制。 首先,我们需要了解什么是画刷。在GDI中,画刷是一个图形对象,用于控制颜色或模式的填充。当你需要填充一个...