使用CreateRectRgn,是否应该DeleteObject该区域例子1
Rgn1 = CreateRectRgn
Rgn2 = CreateRectRgn
CombineRgn(Rgn3, Rgn1, Rgn2, RGN_AND); 此处是否要释放,该释放些什么?例子2
Rgn1 = CreateRectRgn
GetClipRgn(ADC, Rgn2);
SelectClipRgn(ADC, Rgn1);
...
SelectClipRgn(ADC, Rgn2) //恢复
此处又该释放些什么? Rgn1? Rgn2?例子3
BeginPath(ADC)
...//构造一个路径
EndPath(ADC);
GetClipRgn(ADC, Rgn1);
SelectClipPath(ADC);
...
SelectClipRgn(Rgn1); //恢复 此处又该释放些什么??????
Rgn1 = CreateRectRgn
Rgn2 = CreateRectRgn
CombineRgn(Rgn3, Rgn1, Rgn2, RGN_AND); 此处是否要释放,该释放些什么?例子2
Rgn1 = CreateRectRgn
GetClipRgn(ADC, Rgn2);
SelectClipRgn(ADC, Rgn1);
...
SelectClipRgn(ADC, Rgn2) //恢复
此处又该释放些什么? Rgn1? Rgn2?例子3
BeginPath(ADC)
...//构造一个路径
EndPath(ADC);
GetClipRgn(ADC, Rgn1);
SelectClipPath(ADC);
...
SelectClipRgn(Rgn1); //恢复 此处又该释放些什么??????
HGDIOBJ hObject // handle to graphic object
);
Parameters
hObject
Handle to a logical pen, brush, font, bitmap, region, or palette.
Return Values
If the function succeeds, the return value is nonzero.If the specified handle is not valid or is currently selected into a device context, the return value is zero. Windows NT: To get extended error information, callGetLastError.Res
Do not delete a drawing object (pen or brush) while it is still selected into a device context.When a pattern brush is deleted, the bitmap associated with the brush is not deleted. The bitmap must be deleted independently. MSDN资料只提到不要删除pen和brush的,个人觉得应该删除~~反正留着也没什么用
。
就是创建什么,就释放什么DeleteObject不要删除一个已选入设备场景的画笔、刷子或位图。如删除以位图为基础的阴影(图案)刷子,位图不会由这个函数删除——只有刷子被删掉
SelectClipRgn 为指定设备场景选择新的剪裁区 该函数拷贝剪裁区;
这样同一剪裁区可用于多个设备场景,删除它不会影响每个设备场景的剪裁区。
2 释放Rgn1
3 不释放CreateRectRgn其实是返回一个数组,在没有select时,应该删除,不过因为只是数组,并不是资源,所以应该一般不会有什么问题出在这里吧。