再一次,求帮助:关于CompatibleDC

诡月 2011-03-23 02:49:01
继续求帮助:

我在一个窗口的DefWindowProc函数中处理一个兼容DC问题.背景原先就是一个兼容DC,我想在此DC上的Bitmap上绘图
此bitmap为m_hBackBitmap;

LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
CDC *pDC = GetDC();
HDC hdc = pDC->GetSafeHdc();
HDC memDC = CreateCompatibleDC(hdc);
HBITMAP hOldBitmap;

//hOldBitmap = (HBITMAP)::SelectObject(memDC,m_hBackBitmap); //这里绑定兼容DC则无图像
switch (message)
{
case WM_LBUTTONDOWN:
/*hOldBitmap = (HBITMAP)::SelectObject(memDC,m_hBackBitmap);//这里绑定兼容DC有图像
Rectangle(memDC,0,0,100,100);*/
break;
case WM_LBUTTONUP:
/*hOldBitmap = (HBITMAP)::SelectObject(memDC,m_hBackBitmap);//这里绑定兼容DC有图像
Rectangle(memDC,0,0,100,100);*/
break;
case WM_MOUSEMOVE:
if (MK_LBUTTON == wParam)
{
hOldBitmap = (HBITMAP)::SelectObject(memDC,m_hBackBitmap);//这里绑定兼容DC则无图像
Rectangle(memDC,0,0,100,100);
}
break;
default:
return CWnd::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
}

return 0;
}


为什么会是这样呢?
我加了InvalidateRect试过了....
求助.
...全文
87 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-04-19
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
LICHUNLI1022 2011-03-24
  • 打赏
  • 举报
回复
Rectangle(memDC,0,0,100,100); 不明白这里是为了什么?
Eleven 2011-03-23
  • 打赏
  • 举报
回复
hOldBitmap = (HBITMAP)::SelectObject(memDC,m_hBackBitmap);
这里SelectObject() 失败?
mouse_xie 2011-03-23
  • 打赏
  • 举报
回复
3: 不明白为什么要在DefWindowProc里面绘制???
mouse_xie 2011-03-23
  • 打赏
  • 举报
回复
1: Rectangle(memDC,0,0,100,100); 覆盖了这个矩形区域的图片,背景变为白色
2: SelectObject绘制在兼容DC上,需要拷贝到DC上才可以看得到。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧