比如:
CDC* pDC = GetDC();
CPen newPen( PS_SOLID, 2, RGB(255,0,0) );
CPen* pOldPen = pDC->SelectObject( &newPen );
// do
// something
pDC->SelectObject( pOldPen);ReleaseDC( pDC ); 问题如下:
1) 最后的ReleaseDC( pDC )还需要么?
2) 对于CClientDC dc(this);这样的dc到最后是否需要ReleaseDC()?
3) 还有CPaintDC等等DC是否也需要ReleaseDC()?敬请高手解答!!
CDC* pDC = GetDC();
CPen newPen( PS_SOLID, 2, RGB(255,0,0) );
CPen* pOldPen = pDC->SelectObject( &newPen );
// do
// something
pDC->SelectObject( pOldPen);ReleaseDC( pDC ); 问题如下:
1) 最后的ReleaseDC( pDC )还需要么?
2) 对于CClientDC dc(this);这样的dc到最后是否需要ReleaseDC()?
3) 还有CPaintDC等等DC是否也需要ReleaseDC()?敬请高手解答!!
解决方案 »
- 利用内存文件映射同时读取大图像(BMP格式)的数据段数据
- 请在 Richedit里面显示gif格式的动态图片,答对给1000分 或 给1000元钱
- 怎么播放声音文件哪?
- dll loadlibrary failed请问是缺少vc的哪个dll导致的,谢谢!
- 怎样把二个EXE文件捆绑起来,当执行第一个时,也同时调用第二个?
- 生成DIB图像拷贝到剪贴板的程序如下(30行不到):请问错误原因
- 在下开发了一个五子棋软件,有兴趣的朋友请来看看...
- 数据库记录添加的一个问题
- 菜鸟之LPTSTR问题
- 如何透明地贴图?
- 如何判断操作系统是WINDOWS还是LINUX?
- 私有消息队列\\private$\MyQuere里有一消息,内容是一串字符,vc怎么能读出来
2. 不需要,析构函数自动调用ReleaseDC
CClientDC::~CClientDC()
{
ASSERT(m_hDC != NULL);
::ReleaseDC(m_hWnd, Detach());
}3. 不需要,析构函数自动调用EndPaint
CPaintDC::~CPaintDC()
{
ASSERT(m_hDC != NULL);
ASSERT(::IsWindow(m_hWnd)); ::EndPaint(m_hWnd, &m_ps);
Detach();
}