使用GDI画图的时候图象不见了

hfx9109 2006-11-25 09:02:12
在win32程序中相应WM_INPUT消息时进行绘图,代码如下,闪闪也就算了,可是闪了一会儿之后那张bitmap就再也不出现了,请大家帮忙
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
HBITMAP g_hbmBall = NULL;
BITMAP bm;
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rc);
g_hbmBall = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(101));
HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, g_hbmBall);
GetObject(g_hbmBall, sizeof(bm), &bm);
BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);
SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);
EndPaint(hwnd, &ps);
...全文
131 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chehw 2006-11-25
  • 打赏
  • 举报
回复
响应WM_PAINT以外的其他消息时,获取hdc应使用
hdc=GetDC(hwnd);
....
....
ReleaseDC(hwnd, hdc);
hfx9109 2006-11-25
  • 打赏
  • 举报
回复
不行,在 WM_PAINT 中还有别的显示
DrawText(hdc, inputInfo, strlen(inputInfo), &rc, DT_CENTER);
这个文本一直是正常的,图片开始有,闪了一会儿就只有文本了
布学无数 2006-11-25
  • 打赏
  • 举报
回复
在 WM_PAINT 中绘图,其他消息里调用 InvalidateRect 来更新

19,468

社区成员

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

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