首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

求问,CDC:SelectObject()带的参数可以是句柄吗?解决办法

2012-01-29 
求问,CDC::SelectObject()带的参数可以是句柄吗?各位大虾好,孙鑫老师的视频有这样两句代码(实现一个空的画

求问,CDC::SelectObject()带的参数可以是句柄吗?
各位大虾好,
孙鑫老师的视频有这样两句代码(实现一个空的画刷)
CBrush   *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));   dc.SelectObject(pBrush);
我在输入的时候Visual   Assist   X提示有以下这种格式
HGDIOBJ   CDC::SelectObject(HGDIOBJ),但我在MSDN中没找着这种格式呀,我就试了试dc.SelectObject(GetStockObject(NULL_BRUSH));和
dc.SelectObject((HBRUSH)GetStockObject(NULL_BRUSH));结果都成功了。我就迷糊了,难道可以传句柄吗?为什么MSDN里全是传的指针?HBRUSH和HGDIOBJ又是什么关系呢?
描述的有点罗嗦,谢谢解答!

[解决办法]
_AFXWIN_INLINE HGDIOBJ CDC::SelectObject(HGDIOBJ hObject) // Safe for NULL handles
{ ASSERT(m_hDC == m_hAttribDC); // ASSERT a simple CDC object
return (hObject != NULL) ? ::SelectObject(m_hDC, hObject) : NULL; }

上面是从MFC源码中复制出来的,可见存在SelectObject(HGDIOBJ hObject)这个函数,不知道怎么回事,MSDN中没有写出来。

热点排行