MFC绘图3-设置绘图颜色(转载)

typedef DWORD COLORREF; // 0x00bbggrr

#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16)))

BYTE bRed,    // red component of color

BYTE bBlue    // blue component of color

              COLORREF red, gray;

              red = RGB(255, 0, 0);

              gray = RGB(128, 128,128);

#define GetRValue(rgb) (LOBYTE(rgb))

#define GetGValue(rgb) (LOBYTE(((WORD)(rgb)) >> 8))

#define GetBValue(rgb) (LOBYTE((rgb)>>16))

typedef ULONG_PTR DWORD_PTR;

pDC->SetPixel(10, 10, RGB(0, 255, 0));

<!--[if !supportLists]-->l         <!--[endif]-->创建笔对象:创建笔类CPen对象的方法有如下两种:

<!--[if !supportLists]-->n         <!--[endif]-->使用构造函数CPen

CPen( int nPenStyle, int nWidth, COLORREF crColor );

<!--[if !supportLists]-->u       <!--[endif]-->nPenStyle为笔的风格,可取值:

PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PSDASHDOTDOT

<!--[if !supportLists]-->u       <!--[endif]-->nWidth为笔宽,与映射模式有关,使用缺省映射时为像素数,若nWidth = 0,则不论什么映射模式,笔宽都为一个像素;

<!--[if !supportLists]-->u       <!--[endif]-->crColor为笔的颜色值。

<!--[if !supportLists]-->n         <!--[endif]-->使用成员函数CreatePen

BOOL CreatePen( int nPenStyle, int nWidth, COLORREF crColor );

<!--[if !supportLists]-->n         <!--[endif]-->缺省的笔为单像素宽的实心黑色笔

<!--[if !supportLists]-->l         <!--[endif]-->将笔对象选入设备上下文:为了能使用我们所创建的笔对象,必须先将它选入设备上下文,这可以调用设备上下文类CDC的成员函数SelectObject来完成:

<!--[if !supportLists]-->l         <!--[endif]-->使用设备上下文画线状图:画线状图以及面状图的边线,所使用的是当前设备上下文中的笔对象。线状图有直线、折线、矩形、(椭)圆(弧)等,详见4)(2)

<!--[if !supportLists]-->l         <!--[endif]-->将笔对象从设备上下文中放出:为了能删除使用过的笔对象,必须先将它从设备上下文中释放出来后,然后才能删除。释放的方法是装入其他的笔对象(一般是重新装入原来的笔对象)。例如

<!--[if !supportLists]-->l         <!--[endif]-->删除笔对象:为了能删除笔对象,必须先将其从设备上下文中释放。删除方法有如下几种:

<!--[if !supportLists]-->n         <!--[endif]-->调用笔类CDC的成员函数DeleteObject删除笔的当前内容(但是未删除笔对象,以后可再用成员函数CreatePen在笔对象中继续创建新的笔内容)。如

<!--[if !supportLists]-->n         <!--[endif]-->使用删除运算符delete将笔对象彻底删除,如delete pen;

<!--[if !supportLists]-->n         <!--[endif]-->自动删除:若笔对象为局部变量,则在离开其作用域时,会被系统自动删除

       for (int j = 0; j <= 255; j++) {

              HSLtoRGB(m_hue, m_sat, 255 - j, r, g, b); // 自定义的函数

              pen.CreatePen(PS_SOLID, 0, RGB(r, g, b));

              pOldPen = pDC->SelectObject(&pen);

              pDC->MoveTo(0, j); pDC->LineTo(40, j);



郑重声明:资讯 【MFC绘图3-设置绘图颜色(转载)】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——