在看nehe教程的时候,我发现在调用SelectObject函数的时候,作者将这个函数的返回值保存在一个变量里:
HFONT font,oldfont;
oldfont = (HFONT)SelectObject(hDC, font);
不明白这样做的原因,到CSDN论坛上搜了下,找到一个不错的答案:
原帖如下:
“两个作用
1.恢复原来的GDI2.释放资源
CBitmap bit, *bitOld = NULL;
bitOld = (CBitmap *)pDC-> SelectObject(&bit); //bitOld保存原来的HBITMAP
//使用完后
pDC-> SelectObject(bitOld); //恢复原来的HBITMAP, 更重要的作用是将bit选出
bit.DeleteObject(); //释放bit 的GDI资源,如果没有上面的一句将它从DC中选出,它是无法删除的"
很感谢大侠的帮助。
http://blog.csdn.net/mvpsendoh/article/details/6890727