VS2010_MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)-软件开发-鸡啄米
MFC图形处理

返回
14
2 绘图设备类
注 意 : 线 型 PS_DASH 、 PS_DOT 、 PS_DASHDOT 和 PS_DASHDOTDOT只有在画笔宽度为1个逻辑单位时才有 效。 参数nWidth : 设 置 以 逻 辑 单 位 衡 量 的 线 宽 , 如 果 nWidth为0,则设备自动将画笔设置为一个像素宽,而 不管当前的映射方式。 参数crColor:设置画笔的颜色,其颜色通过RGB宏来确 定: COLORREF RGB(cRed,cGreen,CBlue); 参数cRed、cGreen、CBlue分别指定红、绿、蓝3色的相 对亮度,每个参数均可以被赋予0到255之间的值。
返回
10
2 绘图设备类
2.1 CGdiObject类 CGdiObject类派生于CObject类,它是CGdiObject、CPen、CBrush、 Cfont和CBitmap等的基类。用户不能直接生成一个CGdiObject类, 而必须在它的某种设备继承类中生成一个CGdiObject类的派生类。 2.2 CPen类 CPen类是CGdiObject类的一个派生类,它封装了Windows图形设备接 口(GDI)中有关画笔的操作。CPen类的定义如下: class CPen: public CGdiObject { DECLARE_DYNAMIC(CPen) public:
返回
8
1 设备环境(DC)
1.3 设备环境类的使用方法 1. CDC类 因为CDC类不能用窗口对象指针初始化对象,所以,一般不直接定义 对象。 2. CPaintDC类 CPaintDC 类一般用在窗口类OnPaint函数中,可采用如下代码定义一 个CPaintDC类对象: CPaintDC dc(this); 以上代码定义了一个CPaintDC类的对象dc,并用当前的窗口对象指针 this对对象进行了初始化。CClientDC和CWindowDC类也采用这样的 方法。 3. CClientDC类 可利用以下代码定义一个对象:CClientDC dc(this); 4. CWindowDC 类 利用以下代码创建一个CWindowDC类的对象:CWindowDC dc(this);
C++MFC笔记

CBrush是封装了Windows图形设备接口(GDI)中画刷的MFC类,用于构造CBrush对象,然后传给需要画刷的CDC成员函数。
具体画刷可以由实线、阴影线或指定模式的位图线构成。
可参阅CBitmap, CDC相关说明请看下面的代码:CDC *pDc=new CClientDC(this);CBrush brush;brush.CreateSolidBrush(RGB(0,255,0));CBrush *pOldBrush = pDc->SelectObject(&brush);pDc->Rectangle(50,50,200,200);pDc->SelectObject(pOldBrush);deletepDc;比较困惑的是pDc->SelectObject(&brush);将刷子选入dc中,返回了一个CBrush类型的指针pOldBrush,为什么在画完矩形之后,还要有pDc->SelectObject(pOldBrush);这么一条语句呢?怎么还要把pOldBrush指针也选入dc中呢?书上解释说是恢复原来的画刷,晕~我这画刷也没改变啊,恢复个什么呢?.................CBrush *pOldBrush = pDc->SelectObject(&brush);将brush自己定义的brush画刷选入dc中,此时dc就可以使用我们自己定义的brush画刷进行作业。
同时pDc->SelectObject(&brush)方法返回一个指针,该指针实际上是未引入brush之前dc中的缺省指针,这里我们将这个缺省指针返回了,并将之赋值为CBrush类型的,也就是pOldBrush指针就是这个缺省指针。
在我们作业完成后,不能将dc中的brush消除掉,如果我们使用delete方法直接删除掉brush 对象的话,也就是说brush对象没有了但dc中仍保留了原先brush对象的句柄,这是不正确的,也是容易出问题的,因此我们要将dc中的brush的句柄给消除掉,怎么消除掉呢?我们知道句柄实际上应该是个指针,我们只需要将dc中原先的brush指针替换掉就好了,就好比,只有一个位置,我要进来,你必须离开。
创建画笔,画刷,颜色mfc

1.创建画笔当用户创建一个用于绘图的设备环境对象时,系统自动将一个像素单位宽度的实黑线的画笔作为默认画笔。
如果用户欲使用其他性质的画笔,首先就要创建该画笔。
创建画笔可以采用两种方法。
一种方法是通过调用画笔Cpen类的一个带参构造函数来构造一个Cpen类画笔对象。
Cpen Pen(int nPenStyle,int nWidth,COLORREF rgbColor)其中第一个参数用于指定画笔样式;第二个参数用于指定画笔宽度;第三个参数用于指定画笔颜色。
画笔的样式说明参考表3.3;画笔的颜色可以通过Windows提供的GRB宏来设置,其使用格式为:RGB(nRed,nGreen,nBlue)参数nRed、nGreen、nBlue分别表示红、绿、蓝分量值,数值范围为0~255。
如RGB(0,0,0)表示黑色;RGB(255,0,0)表示红色。
表3.4列出了常用颜色的RGB值。
表3.3 画笔的样式说明表3.4常用颜色的RGB值下面的代码创建了一个蓝色实线画笔:CPen Pen(PS_SOLID,1,RGB(0,0,255));创建画笔的另一个方法是首先声明一个CPen对象,然后调用CPen类的成员函数CreatePen()创建特定的画笔。
CPen Pen;Pen.CretePen(int nPenStyle,int nWidth,COLORREF rgbColor);如下代码同样创建一个蓝色实线画笔:CPen PenNew;PenNew.CreatePen(PS_SOLID,1,RGB(0,0,255));当需要多次改变画笔的属性时,多采用这种方法。
●2.选择创建的画笔到设备环境中创建画笔后,必须调用成员函数CDC::SelectObject()将创建的画笔选入设备环境对象中。
如果选择成功,函数SelectObject()将返回原来画笔对象的指针。
一般情况下,在选择新的画笔时应该保存原来的画笔对象,以备恢复。
MFC-画笔 画刷 字体对象的使用

m_font.DeleteObject();
}
//这个if语句是删除m_font对象相关联的window gdi对象以便下句能够再一次关联;
m_font.CreateFontIndirect(font.m_cf.lpLogFont);//初始化CFont对象m_font;
定义画笔
CPen pen(PS_SOLID,2,RGB(255,0,0));
//参数1是画笔的样式:PS_SOLID-实线 PS_DASH-虚线 PS-DOT-点线
//参数2是画笔的宽度//参数3是画笔的颜色(RGB)
CPen *OldPen=pDC->SelectObject(&pen);
pDC->SelectObject(pOldBrush);
定义字体
设置字体的消息响应函数例如:OnMFont()
CFontDialog font;
if(IDOK==font.DoModal())
{
if(m_font.m_hObject)//m_hObject变量保存了与m_font对象相关联的资源句柄
pDC->LineTo(100,100);
pDC->SelectObject(OldPen);
定义画刷
CBrush brush(RGB(255,0,0));
CBrush *pOldBrush=pDC->SelectObject(&brush);
pDC->Ellipse(0,0,100,100);
font.CreateFontIndirect(&lf); ቤተ መጻሕፍቲ ባይዱ
pDC->SelectObject(&font);
C#.net地图控件开发(五)GDI+图形图像编程基础3.

C#.net地图控件开发(五)GDI+图形图像编程基础3.画刷和画刷类型Brush类型是一个抽象类,所以它不能被实例化,也就是不能直接应用,但是我们可以利用它的派生类,如:HatchBrush、SolidBrush、T extureBrush、LinearGradientBrush和PathGradientBrush等。
画刷类型一般在System.Drawing命名空间中,如果应用HatchBrush和GradientBrush画刷,需要在程序中引入System.Drawing.Drawing2D命名空间。
1. SolidBrush(单色画刷)它是一种一般的画刷,通常只用一种颜色去填充GDI+图形,例如:protected override void OnPaint(PaintEventArgs e){Graphics g = e.Graphics;SolidBrush sdBrush1 = new SolidBrush(Color.Red);SolidBrush sdBrush2 = new SolidBrush(Color.Green);SolidBrush sdBrush3 = new SolidBrush(Color.Blue);g.FillEllipse(sdBrush2, 20, 40, 60, 70);Rectangle rect = new Rectangle(0, 0, 200, 100);g.FillPie(sdBrush3, 0, 0, 200, 40, 0.0f, 30.0f );PointF point1 = new PointF(50.0f, 250.0f);PointF point2 = new PointF(100.0f, 25.0f);PointF point3 = new PointF(150.0f, 40.0f);PointF point4 = new PointF(250.0f, 50.0f);PointF point5 = new PointF(300.0f, 100.0f);PointF[] curvePoints = {point1, point2, point3, point4,point5 };g.FillPolygon(sdBrush1, curvePoints);}2. HatchBrush(阴影画刷)HatchBrush类位于System.Drawing.Drawing2D命名空间中。
MFC画图程序步骤

MFC画图程序步骤MFC(Microsoft Foundation Class)是一种用于开辟Windows应用程序的C++类库。
在MFC中,我们可以使用GDI(Graphics Device Interface)来创建和操作图形。
下面是使用MFC创建一个简单的画图程序的步骤。
步骤1:创建一个新的MFC项目首先,打开Visual Studio并选择创建一个新的项目。
在项目类型中,选择Visual C++ -> MFC,然后选择MFC应用程序类型。
输入项目名称并选择保存的位置。
在应用程序类型中,选择“单文档”或者“多文档”视图,具体根据你的需求而定。
点击“确定”按钮创建项目。
步骤2:设计用户界面在MFC应用程序中,用户界面是通过对话框资源来设计的。
在资源视图中,双击IDD_DIALOG(或者其他对话框资源)以打开对话框编辑器。
在对话框编辑器中,你可以添加按钮、文本框、菜单等控件来设计你的用户界面。
在画图程序中,你可以添加一个画布控件来显示绘制的图形。
步骤3:添加绘图功能在MFC中,你可以使用GDI来进行绘图操作。
打开你的对话框类的头文件(例如,CMyDialog.h),添加以下头文件引用:#include <afxwin.h>#include <afxext.h>#include <afxdisp.h>在对话框类的源文件(例如,CMyDialog.cpp)中,添加以下代码来处理绘图操作:```void CMyDialog::OnPaint(){CPaintDC dc(this); // 用于绘制的设备上下文// 在这里进行绘图操作dc.Rectangle(100, 100, 200, 200); // 绘制一个矩形dc.Ellipse(300, 100, 400, 200); // 绘制一个椭圆}```步骤4:处理绘图事件在对话框类的消息映射中添加对绘图事件的处理。
VS2010利用MFC的Picture控件显示和处理图像
利用 MFC 的 Picture 控件显示和处理图像在《OpenCV 教程-基础篇》的 2.8 节中,所创建的 MFC 图像显示是直接放在对话框面板的左上 角的,感觉不大美观;《MFC 中快速应用 OpenCV》 则是介绍用 SDI(单文档界面)来显示图 像,《A step-by-step guide to the use of Microsoft Visual C++ and the Intel OpenCV library》 使用 VS2005 来进行图像和视频的读取和处理,但是其图像和视频的显示界面不是在对话框里面 的,而是新建一个窗口来做。
所以下面我们就来看看怎么在对话框里使用 Picture 控件来显示和 处理图像。
[编辑]创建 MFC首先创建一个 MFC 对话框应用程序(Dialog-based Application)如下:在 VS2005 和 2008 里,我们可以用一个 Solution 来组合几个 Project (每个 Project 基本上 只包含一个 Program),当我们要构建一个多 Program 的应用时(例如一个客户端程序加一个 服务器应用程序),利用 Solution 可以将这些 Projects 组合起来、并且共享文件和函数库。
通常需要为 Solution 创建一个主路径,其中包含了所有 Projects 的路径。
不过在这篇文章里, 我们只构建一个简单的 Project,所以在创建 MFC 的 New Project 对话框里,不用勾选“Create directory for solution”这个选项。
点击 OK -- Next 进入下一步,在这里我们创建一个 Dialog-based Application,大部分选项按默 认设置就行,不过最下面的“Use Unicode libraries”最好去掉。
如果勾选了这个选项,程序代码 就会使用 16bit 的 Unicode 字符集来编码,但是很多函数虽然使用 char* (ASCII stings) 类型字 符,而将字符串从 Unicode 转换到 ASCII 是非常麻烦的。
《GDI图形图像编程》PPT课件
精选PPT
BRUSH类
Brush类是一个抽象的基类,因此不可以? 为了创建 Brush类的对象,必须用派生类 Brush 可使用其输出“绘制”或“填充”区域。
画笔不同,其输出类型也不同。 某些画笔使 用纯色绘制区域,其他画笔则使用渐变、图案、 图像或绘图绘制区域
22
精选PPT
BRUSH类
Point和PointF:
—表示绘制平面上点的坐标,一个为整数,另一个为浮 点数。
—构造函数:
Point point=new Point(20,20) Point point2=new Point(new Size(10,10))
—属性:
Width:宽度 Height:高度
—重载了加、减、赋值操作
左上角,x指向右边,y指向左边。
(0,0)
x
y
10
精选PPT
4.SYSTEM.DRAWING中常用的结构
Color:
—Color封装了对颜色的定义。该结构封装了数百个分别 对应于标准调色板色彩的静态成员。如:Color.Red代 表红色,Color.Blue代表蓝色
—有用的静态方法:
FromArgb:通过三原色构件Color对象 FromKnownColor:通过已知颜色构建Color对象 FromName:通过颜色名称来构建Color对象
24
精选PPT
开始画吧!!
1:画一条直线 DrawLine 2:画一个矩形 DrawRectangle 3:画一条曲线 DrawCurve
25
精选PPT
练习代码
private void Form1_Paint(object sender, PaintEventArgs e)
C++ GDI+ 画刷、矩阵、基本绘图函数、文字、图像
C++ GDI+ 画刷、矩阵、基本绘图函数、文字、图像主要画刷单色画刷SolidBrushSolidBrush(const Color& color );网格画刷HatchBrushHatchBrush( HatchStyle hatchStyle, const Color& foreColor, const Color& backColor);foreColor和backColor用来指定阴影线颜色和填充的背景颜色,背景色可以不指定。
hatchStyle用来指定阴影线的样式。
预定义样式:HatchStyleHorizontal (水平线)HatchStyleVertical(垂直线)HatchStyleForwardDiagonal(上斜线)HatchStyleBackwardDiagonal(下斜线)HatchStyleCross(十字线)HatchStyleDiagonalCross (交叉线)HatchStyle30Percent(30%填充)HatchStyleSolidDiamond (实心菱形)直线渐变LinearGradientBrushLinearGradientBrush( Point & point1, Point & point2, Color & color1, Color & color2);LinearGradientBrush( Rect & rect, Color & color1, Color & color2, REAL angle, BOOL isAngleScalable ); LinearGradientBrush( Rect & rect, Color & color1, Color & color2, LinearGradientMode mode);point1和point2分别用来指定矩形区域的左上角和右下角点坐标。
GDI编程
GDI编程GDI编程一、GDI相关概念1、 GDI(Graphics Device Interface):图形设备接口,是一个应用程序与输出设备之间的中介。
它提供了一套函数库,这些函数在不同的输出设备上输出图形和文字。
一方面,GDI向应用程序提供一个与设备无关的编程环境,另一方面,它又以设备相关的格式和具体的设备打交道。
2、DC (Device Context):设备描述表(设备上下文),是一种Windows数据结构,包括了如线的宽度和颜色、刷子的样式和颜色、字体、剪裁区域等信息。
用于表达显示器、打印机等设备。
DC的主要作用是进行绘图和输出文字,如绘制线条、形状和文本等,具体如dc.MoveTo(),dc.LineTo(),dc.Ellipse(),dc.FillRect(),dc.FillSolidRect(),dc.TextOut()等。
Win32下与HDC相关的函数有:GetDC(), BeginPaint()/EndPaint(),GetWindowDC()等对应的MFC版本的类有:CDC, CPaintDC, CClientDC, CWindowDC等3、GDI对象:DC定义了一组GDI对象,包括画笔,画刷,字体,位图,调色板,剪裁区域,路径层(Path)。
他们有Win32和MFC两套实现版本,其对应关系如下:4、DC与GDI对象之间的关系:GDI对象是通过DC发生作用的,要使用这些GDI对象,可以使用Win32函数SelectObject来将其选入DC中,如::SelectObject(hdc, hPen);5、利用DC和GDI对象绘图的完整步骤为:(1). 获取或者创建一个DC(2). 获取或者创建一个GDI对象(Pen, Brush等)(3). 使用dc.SelectObject函数把GDI对象选入DC(4). 使用DC进行绘图或文字输出(5). 恢复DC原来的GDI对象并删除刚新创建的GDI对象,如pen.DeleteObject()(6). 释放或删除设备描述表DC其中,(1)和(6),(2)和(5)是成对出现的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
无觅关联推荐[?] 2012-10-12 22:19:2
作者:鸡啄米 分类:软件开发 浏览:39365
评论:3
上一篇:移动互联网两强相争:新浪微博VS腾讯微信
下一篇:iPhone5将成为苹果败笔的四点理由
相关文章: VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen) (2012-10-8 22:53:50) VS2010/MFC编程入门之四十九(图形图像:CDC类及其屏幕绘图函数) (2012-9-26 21:22:28) VS2010/MFC编程入门之四十八(字体和文本输出:文本输出) (2012-9-22 22:41:48) VS2010/MFC编程入门之四十七(字体和文本输出:CFont字体类) (2012-9-18 22:53:35) VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理) (2012-9-13 21:49:7) VS2010/MFC编程入门之四十五(MFC常用类:CFile文件操作类) (2012-9-9 19:44:51) VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer) (2012-9-4 20:19:55) VS2010/MFC编程入门之四十三(MFC常用类:CTime类和CTimeSpan类) (2012-8-31 22:29:21) VS2010/MFC编程入门之四十二(MFC常用类:CString类) (2012-8-27 21:34:51) VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口) (2012-8-24 0:13:57)
分类标签: 编程入门
VS2010
VC++
MFC
订阅鸡啄米
上一节中鸡啄米主要讲的是画笔CPen的用法 ,前面也说了,GDI对象中最常用的就是画笔和画 刷,本节就讲讲画刷CBrush。
鸡啄米依然是通过实例的方式来说明画刷的用 法。此实例要实现的功能是,对话框上有一个按钮 控件和一个图片控件,点击按钮弹出颜色对话框, 然后在颜色对话框中选择颜色并点击“确定”后,图 片控件中将显示选择的颜色。
VS2010/MFC编程入 VS2010/MFC编程入
门之四框架:分割窗
绘图函数)
口)
VS2010/MFC编程入 门之三十一(常用控 件:树形控件Tree Control 下)
除非特别注明,鸡啄米文章均为原创 转载请标明本文地址:/software/248.html
analogMFC_2.obj : ... 我复制了后面的代码,为什么运行不了,... 请问如何链接MFC库?谢谢 哦 看起来有点不懂了 我想問下 為什麼我的那個宋體的字體無... 看似很简单的一句话,或许都能给人以启... 是面向对象吧 鸡爷 牛逼 再接再厉 弄出好作品来! 顶支持博主 加油了 很好的教材,赞一个!
最近发表
VC++操作Word之简明入门教程 VC++文件操作之最全篇 小菜和大鸟的编程故事之十四:设计模式不能戏 说!设计模式怎就不能戏说? 小菜和大鸟的编程故事之十三:门面让程序员的 程序更加体面 小菜和大鸟的编程故事之十二:无熟人难办事?-聊设计模式之迪米特法则 小菜和大鸟的编程故事之十一:三层架构 分层开 发 小菜和大鸟的编程故事之十:会修电脑不会修收 音机?--谈设计模式原则 小菜和大鸟的编程故事之九:反射--程序员的快乐 小菜和大鸟的编程故事之八:初识'策略模式' iOS7的扁平化之漫谈 小菜和大鸟的编程故事之七:工厂模式不好用 了? 小菜和大鸟的编程故事之六:简单工厂模式之体 验 一位离职员工谈谈危机中的中兴 小菜和大鸟的编程故事之五:业务和界面分离 移动应用七大UI设计经验
C++代 码
1. void CExample51Dlg::OnBnClickedColorSelButton()
2. {
3.
// TODO: Add your control notification handler code here
4.
COLORREF color = RGB(255, 0, 0); // 颜色对话框的初始颜色
27.
// 以新画刷为图片控件填充颜色
28.
clientDC.Rectangle(rectPicture);
29.
30.
// 恢复旧画刷
31.
clientDC.SelectObject(pOldBrush);
32.
// 删除新画刷
33.
newBrush.DeleteObject();
34.
}
35. }
12.
{
13.
// 如果点击了颜色对话框的“确定”按钮,则执行以下操作
14.
15.
// 获取颜色对话框中选择的颜色
16.
color = colorDlg.GetColor();
17.
// 用选择的颜色创建新画刷
18.
newBrush.CreateSolidBrush(color);
19.
20.
// 获取图片控件矩形区域的屏幕坐标
6.
CRect rectPicture;
// 图片控件的矩形区域坐标
7.
CBrush newBrush;
// 创建的新画刷
8.
CBrush *pOldBrush;
// 旧画刷的指针
9.
CClientDC clientDC(this); // 构造客户区的设备上下文对象
10.
11.
if (IDOK == colorDlg.DoModal()) // 显示颜色对话框
鸡啄米
聚焦互联网、数码、软件开发和编程入门的IT休闲吧
首页 IT互联网 数码生活 软件开发 职场人生 娱乐休闲 安卓开发 留言簿
RSS订阅
首页 » 软件开发 » VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)
VS2010/MFC编程入门之五十一(图形图像:GDI对象之画刷CBrush)
1楼. 港城婚纱摄影 支持一下
2楼. 亚洲米 可不可以更新快点啊!!嘿嘿,博主讲的最好懂了!
鸡啄米 于 2012-10-18 22:46:45 回复 谢谢,我会尽量快点的
完全随机文章
iPhone5上市时间:百思买泄露文件中... 鸡啄米:C++编程入门系列之十(函数的... Android在欧洲智能手机市场击败iPh... 汇总iPhone5和iPhone4S的传闻报道 ... Facebook与iPhone 诺基亚发布首批Windows Phone智能手... 鸡啄米:C++编程入门系列之二十七(数... 鸡啄米:C++编程入门系列之三十四(数... 鸡啄米:C++编程入门系列之三十九(继... 2011年IT互联网大事记 鸡啄米:C++编程入门系列之四十四(多... 360与新浪微博共享登录账号,实现合... 苹果争取域名的控制权 推荐九款最优秀的Android平板电脑 职场人面对升职机会该怎么办 移动互联网两强相争:新浪微博VS腾讯... iPhone5将成为苹果败笔的四点理由 MFC六大核心机制之二:运行时类型识... Mysql C语言API编程入门讲解之详细... 2013年IT互联网行业大预测
工作顺利,有事没事多来鸡啄米逛逛,呵呵。
英语培训【限成都学员】
www.m 高端英语教育集团,体验式教学, 办学久,师资力量强,可定制课程
您可能也喜欢:
VS2010/MFC编程入 门之五十(图形图 像:GDI对象之画笔 CPen)
VC++/MFC编程入门 之三(VS2010应用 程序工程中文件的组 成结构)
本节教程除讲了画刷CBrush的使用外,还让大家简单温习了颜色对话框的用法。 鸡啄米提醒大家,如果有什么函数或类的用法不是很清楚,均可以查阅MSDN。最后祝大家学习
最新评论及回复
gfffffffffffffffff... 持续关注~。请问鸡啄米交流群在哪呢? 31楼说得很合我意有木有。博主写得很... OnSetActive 函数本身有下... 照这个说法,什么都有缺点,那么什么都可以替 代 感谢鸡啄米 呵呵 MFC学得很受用 double r(3.0); VS... 投资二十元,净赚一千万,免费下载百万... 开始学MFC,本节内容蛮多的,有些难... 赞一个,不错,就这这博客看完一章后又...
21.
m_picColor.GetWindowRect(&rectPicture);
22.
// 将图片控件矩形区域的屏幕坐标转换为其父窗口即对话框的客户区坐标
23.
ScreenToClient(&rectPicture);
24.
25.
// 选择新画刷,并保存旧画刷的指针到pOldBrush
26.
pOldBrush = clientDC.SelectObject(&newBrush);
讲到这里,有人会问,到底什么是客户区,什么是非客户区?非客户区包括窗口中的标题栏、菜 单栏、状态栏、滚动条、边框等区域,客户区就是除去非客户区之外的区域。
5、编译运行程序,在结果对话框中,点击“选择颜色”按钮弹出颜色对话框,并选择颜色后,效果 如下图:
iOS (7) 应用程序 6) 诺基亚 (6) 奇虎360 (6) 软件架构 (5) 阿里巴巴 (5) 亚马逊 (5) 电子商务 (5) Mysql (5) 周鸿祎 (5) 雅虎 (4) Google+ (4) Windows Phone (4) 黑莓 (4) HTC (4) 惠普 (3) 软件工程师 (3) 娱乐 (3) 天猫 (3) Twitter (3) 搜狗 (3) 京东商城 (3) 游戏 (3) 职场攻略 (3) 更多标签