# include“LtPnt.h”
L_LTPNT_APIL_INTL_PntRegionColor(油漆,UserDC, crColor, phDestRgn)
创建包含指定颜色的区域。
指向油漆句柄的指针。
要用作显示表面的设备上下文(如屏幕)的句柄。该参数也可以为NULL。设备上下文的映射模式必须为MM_TEXT。
COLORREF值,指定用于创建区域的颜色。
指向要用结果区域更新的区域句柄的指针。
| 价值 | 意义 |
|---|---|
| 成功 | 活动很成功。 |
| < 1 | 发生错误。指返回代码. |
区域创建过程将使用当前区域属性执行。要确定当前区域属性,请调用L_PntGetProperty.要设置或更改当前区域属性,请调用L_PntSetProperty.有关区域属性的详细信息,请参阅PAINTREGION结构。
在创建新区域时,该函数还将使用当前绘画转换信息。要获取当前绘画转换信息,请调用L_PntGetTransformation.要更改或设置绘画转换信息,请调用L_PntSetTransformation.
如果用户在工具箱中设置了位图,则使用该函数L_PntSetMetrics,然后工具箱将为位图创建区域。否则,工具箱将为指定的设备上下文创建区域。
如果UserDC不为NULL,用户应该在调用此函数之前设置DC边界L_PntSetDCExtents.
下面的图像显示了单击黄色区域内创建的区域。
必需的dll和库
L_INT pntregioncoloreexample (HWND HWND){L_INT nRet;油漆;HDC HDC;PAINTSHAPE形状;RECT rcShape;rcDCExtents;HRGN HRGN;/*启动Paint工具箱*/nRet = L_PntInit (&pPaint);如果(SUCCESS != nRet){返回nRet;}获取要在*/上绘制的设备上下文hDC = GetDC (hWnd);/*设置所需的形状属性*/形状。nSize =运算符(漆形);形状。dwMask = PSF_BORDERWIDTH | . dwMask = PSF_BORDERWIDTHPSF_BORDERCOLOR |PSF_BORDERENDCAP |PSF_BACKGROUNDSTYLE |PSF_GRADIENTSTARTCOLOR |PSF_GRADIENTENDCOLOR;形状。nBorderWidth = 10;形状。crBorderColor = RGB (0, 255,0);形状。nBorderEndCap = PAINT_SHAPE_BORDER_ENDCAP_ROUND;形状。nBackgroundStyle = PAINT_SHAPE_BACK_STYLE_GRADIENT;形状。crGradientStartColor = RGB (255, 255, 255);形状。crGradientEndColor = RGB (255,255,0);/*设置新形状属性*/nRet = L_PntSetProperty(油漆,PAINT_GROUP_SHAPE, &形状);如果(nRet != SUCCESS)返回nRet;/*设置DC尺寸的坐标*/SetRect (&rcShape, 10,10,60,60);/*获取目标DC尺寸*/GetClientRect (hWnd, &rcDCExtents);/*设置toolkit用户DC区*/nRet = L_PntSetDCExtents(油漆,&rcDCExtents);如果(nRet != SUCCESS)返回nRet;/*使用当前形状属性绘制一个椭圆到DC (hDC) */nRet = L_PntDrawShapeEllipse(油漆,hDC, &rcShape);如果(nRet != SUCCESS)返回nRet;SetRect (&rcShape, 100, 10, 150, 60);nRet = L_PntDrawShapeEllipse(油漆,hDC, &rcShape);如果(nRet != SUCCESS)返回nRet;SetRect (&rcShape, 60, 60, 95, 95);nRet = L_PntDrawShapeRectangle(油漆,hDC, &rcShape);如果(nRet != SUCCESS)返回nRet;SetRect (&rcShape, 10,100,60,150);nRet = L_PntDrawShapeEllipse(油漆,hDC, &rcShape);如果(nRet != SUCCESS)返回nRet;SetRect (&rcShape, 100,100,150,150);nRet = L_PntDrawShapeEllipse(油漆,hDC, &rcShape);如果(nRet != SUCCESS)返回nRet;/*创建区域*/nRet = L_PntRegionColor(油漆,hDC, RGB (0, 255,0), &hRgn);如果(nRet != SUCCESS)返回nRet;/*显示创建的区域*/FrameRgn (hDC, hRgn, (HBRUSH) GetStockObject (BLACK_BRUSH), 1,1);/*释放设备上下文*/ReleaseDC (hWnd, hDC);/*删除区域*/DeleteObject (hRgn);/*释放油漆工具手柄*/L_PntFree(油漆);返回成功;}